[Haskell] ANNOUNCE: Shellac and Lambda Shell 0.3
Robert Dockins
robdockins at fastmail.fm
Tue May 30 21:16:24 EDT 2006
Fellow Haskellers,
I am pleased to announce the simultaneous release of Shellac 0.3 and Lambda
Shell 0.3. Because I actually never got around to announcing the 0.2
releases, the following change lists are compared to versions 0.1.
Shellac is a library for creating read-eval-print style shells. It makes
binding to feature-rich shell packages (ie, readline) easier. Lambda shell
is full-featured shell environment for evaluating terms of the pure untyped
lambda calculus and a showcase/tutorial for Shellac's features.
What's new in Shellac:
* a revamped client API that doesn't suck
* an API for plugable "backends". A basic backend which uses hGetLine is
included. An optional package supplies a backend for readline.
What's new in Lambda Shell:
* Updated to use the new Shellac API
* CPS transforms on terms
The project homepages are:
http://www.eecs.tufts.edu/~rdocki01/shellac.html
http://www.eecs.tufts.edu/~rdocki01/lambda.html
On these pages you will find links to source downloads, darcs repositories
and, for Shellac, HTML documentation.
The following is an example session with the lambda shell
--------------------------------------------------------------
$ lambdaShell
The Lambda Shell, version 0.3
Copyright 2005-2006, Robert Dockins
The Lambda Shell comes with ABSOLUTELY NO WARRANTY; for details
type ':nowarranty'. This is free software, and you are welcome to
redistribute it under certain conditions; type ':gpl'
for details
> (\x y. x) (\a. a) (\b. b)
\a. a
> :load prelude.lam
> :show four
four = succ three
> four
\f x. f (f (f (f x)))
> mul two three
\f x. f (f (f (f (f (f x)))))
> let x = plus six two
> x == eight
equal
> x == nine
not equal
> one
\f x. f x
> [[ one ]]
\f k. k (\x k_0. f x k_0)
> :showcount
showcount on
> sub seven two
\f x. f (f (f (f (f x))))
<<90 reductions>>
> let l = insertSort (cons two (cons three (cons one nil)))
> index zero l
one
<<463 reductions>>
> index one l
two
<<2135 reductions>>
> index two l
three
<<5720 reductions>>
> :quit
---------------------------------------------------------------
Enjoy!
--
Rob Dockins
Talk softly and drive a Sherman tank.
Laugh hard, it's a long way to the bank.
-- TMBG
More information about the Haskell
mailing list