[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