| Scsh | |
|---|---|
| Original author | Olin Shivers |
| Developers | Brian Carlstrom Martin Gasbichler Mike Sperber |
| Release | 31 October 1994 |
| Stable release | 0.6.7
/ 16 May 2006 |
| Written in | Scheme 48 |
| Operating system | Unix-like |
| Platform | IA-32 |
| Size | 4.2 MB |
| Available in | English |
| Type | Unix shell |
| License | BSD-3-Clause |
| Website | www |
| Repository | github |
Scsh (a Scheme shell) is command-line shell derived from Scheme 48, an implementation of the Scheme programming language. It turns common POSIX shell features (string processing, file-name matching, input/output redirection, etc.) into a Scheme application programming interface in a manner to make the most of Scheme's ability for scripting. It is free and open-source software released under the BSD-3-Clause license.
Scsh, in its original form (a Scheme 48 fork), is limited to 32-bit platforms. There is a development version in the form of a Scheme 48 library that works in 64-bit mode.
Scsh includes these notable features:
gunzip < paper.tex.gz | detex | spell | lpr -Ppulp &:(& (| (gunzip) (detex) (spell) (lpr -Ppulp)) ; background a pipeline
(< paper.tex.gz)) ; with this redirection
#!/usr/local/bin/scsh -s
!#
(define (executables dir)
(with-cwd dir
(filter file-executable? (directory-files dir #t))))
(define (writeln x) (display x) (newline))
(for-each writeln
(append-map executables ((infix-splitter ":") (getenv "PATH"))))
The reference manual for Scsh includes a spoof Acknowledgments section written by Olin Shivers. It starts:
and concludes with: