Functional programming in Python
Paul Hudak
paul.hudak@yale.edu
Tue, 22 May 2001 10:36:05 -0400
> Two points: I have been with Haskell less than half a year, and already
> I have run into a layout-related bug in a tool that produces Haskell
> source.
Why not have your tool generate layout-less code? Surely that would be
easier to program, and be less error prone.
> Second, to a Lisp-head like myself something like
> (let ((a 0)
> (b 1))
> (+ a b))
> does exactly what you say: it uses layout to indicate semantic.
Yes, but the layout is not ENFORCED. I programmed in Lisp for many
years before switching to Haskell, and a common error is something like
this:
> (let ((a 0)
> (b 1)
> (+ a b)))
In this case the error is relatively easy to spot, but in denser code it
can be very subtle. So in fact using layout in Lisp can imply a
semantics that is simply wrong.
-Paul