Another other big difference is that Lisp and Haskell gurus have different programming philosophies, and the difference doesn’t get articulated very often in a way that newcomers will grasp. Lisp gurus stress metaprogramming of a very syntactic flavor (sexps, and the big emphasis on interpreters and macros), while Haskell gurus stress algebraic laws and denotational semantics. The crown jewels of Lisp hacking tend to be sexp-based EDSLs that get macro-expanded into efficient code; in Haskell the crown jewels are denotational EDSLs built around opaque combinators stated in terms of the semantics, and equational rewrite rules for turning them into efficient code. Put very coarsely, in Lisp you metaprogram with expressions, in Haskell you metaprogram with meanings. (This is exaggerated because both styles exist in both communities—it’s a matter of emphasis.)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s