[Haskell-beginners] [OT] Haskell-inspired functions for BASH

Tommy M. McGuire mcguire at crsr.net
Thu Feb 18 11:46:27 EST 2010


Patrick LeBoutillier wrote:
> Hi all,
> 
> I've been studying Haskell for about a year now, and I've really come
> to like it. In my daily work I write a lot of BASH shell scripts and I
> thought I'd try add some of the haskell features and constructs to
> BASH to make my scripting life a bit easier. So I've been working on a
> small BASH function library that implements some basic functional
> programming building blocks.
> 
> Note: There is no actual Haskell code involved here.
> 
> All this is very prototypical, but here is an example of some of the
> stuff I've got so far (map, filter, foldr):
> 
> $ ls data
> 1.txt  2.txt
> 
> # basic map, argument goes on the command line
> $ ls -d data/* | map basename
> 1.txt
> 2.txt
> 
> # map with lambda expression
> $ ls -d data/* | map '\f -> basename $f .txt'
> 1
> 2
> 
> # simple filter, also works with lambda
> $ ls -d data/* | map basename | filter 'test 1.txt ='
> 1.txt
> 
> # sum
> $ ls -d data/* | map '\f -> basename $f .txt' | foldr '\x acc -> echo
> $(($x + $acc))' 0
> 3
> 
> 
> Before I continue with this project, I'm looking for a bit of feedback/info:
> - Does anyone know if there are already similar projets out there?

Once upon a time, there was the es shell, based on the Unix version of Tom
Duff's Plan 9 rc shell, IIRC. It was intended to provide a functional language
for shell programming. Never caught on at all, as far as I know, but it might
be interesting.

http://192.220.96.201/es/es-usenix-winter93.html

Looks like there is a Google project for it:

http://code.google.com/p/es-shell/

> - Does anyone find this interesting?

Yep. :-) Looks pretty cool to me.

> - Any other comment/suggestion/feedback


-- 
Tommy M. McGuire
mcguire at crsr.net


More information about the Beginners mailing list