[racket] Pure functional Racket

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Jul 6 21:16:41 EDT 2011

5 hours ago, Cesar Barata wrote:
> Hi all,
> I would like to know if there's any Racket language that enforces
> pure funcional programming like Haskell does.  I thought that using
> the "Languages as libraries" nature of Racket to provide a pure
> funcional language would be really useful to achieve a clean
> separation of pure modules and impure ones.  Integration with typed
> and/or lazy racket would also be great.

How would it be useful?  (Not a rhetoric question.)

The only thing I can think of is making it easy to refactor code, but
that doesn't look like it's enough of an advantage to make up a new

Note, BTW, that making a language that is *completely* side-effect
free can be a little tricky.  For example, you'd need to either forbid
`require' or implement one that cannot get any non-pure code in, since
you should forbid pure code from calling out to impure functions.  As
Matthias said, the lazy language is impure too -- and it's related to
this: if you want it to be completely pure then you need to give up
being able to call out to non-pure code, which means that you lose
interoperability.  (Or you need to somehow organize access to the
impure code as in monads or similar things.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.