h4sh -- Haskell functions for shell scripting

Unix is all about programs that do one thing, and one thing well.
Unfortunately, over time, the common unix text processing commands have
become bloated and silly, with rather arbitrary features for programs
that should have simple semantics (consider uniq and wc outputting
leading space, or cut indexing fields from 1, just for starters). On the
other hand Haskell has a powerful and beautiful List library for
processing text as lists of strings.

h4sh exposes the Haskell List library as a set of shell utilities.
Utilising function composition via pipes, we can transparently program
in Haskell, in the shell :)

Commands are generated from a description of their type.  Higher order
functions like map are handled using runtime evaluation, provided by the
hs-plugins System.Eval library, allowing arbitrary Haskell code to be
provided as arguments to, for example, map and filter.

A (contrived) example:
 take -n 100 f | id | map -e show.length | filter -e '/= "0"' | sort | reverse 
| head

Get it:
               http://www.cse.unsw.edu.au/~dons/h4sh.html
     darcs get --partial http://www.cse.unsw.edu.au/~dons/code/h4sh

-- Don Stewart
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to