Scsh
File:Scsh logo.png | |
---|---|
Developer(s) | Olin Shivers Brian Carlstrom Martin Gasbichler Mike Sperber |
Initial release | October 31st, 1994 |
Stable release | 0.6.7 / 16 May 2006 |
Written in | Scheme |
Operating system | Unix-like |
Platform | 32-bit |
Size | 4.2 MB |
Available in | English |
Development status | Active |
Type | Unix shell |
License | BSD License |
Website | scsh.net |
Scsh is a POSIX API layered on top of the Scheme programming language in a manner to make the most of Scheme's capability for scripting. It is limited to 32-bit platforms.
The reference manual for Scsh includes a well-known humourous acknowledgements page written by Olin Shivers in 1994,[1]
Who should I thank? My so-called "colleagues", who laugh at me behind my back, all the while becoming famous on my work? My worthless graduate students, whose computer skills appear to be limited to downloading bitmaps off of netnews? My parents, who are still waiting for me to quit "fooling around with computers," go to med school, and become a radiologist? My department chairman, a manager who gives one new insight into and sympathy for disgruntled postal workers?
Features
Scsh includes these notable features:
- Library support for list, character, and string manipulations;
- Regular expressions manipulation support using scheme regular expressions, a little languages approach to the capabilities;
- Strong networking support;
- High-level support for awk like scripts, integrated into the language as macros;
- Abstractions supporting pseudo terminals;
- A shell language, modeled using quasi-quotation.
Example
- Print a list of all the executables available in the current PATH to the standard output:
#!/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"))))
See also
References
External links
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...