Earlier quoted context omitted.
I think it can't be "the true Lisp" without cleaner macros. Of course, that doesn't stop Haskell from being a great Haskell.
I do prefer Racket macros to Template Haskell, but you can do some of the same kind of things in Template Haskell. Go ahead and play with it for it for a bit. Mostly, you need to have the data-structure it defines for the parse tree, and it's harder to convert than syntax->datum. Also there's the Q monad, to generate new safe names. But it works pretty well.
A Haskell Programmer Tries to Learn Racket
161–163 of 163 posts
Re: A Haskell Programmer Tries to Learn Racket
#162Earlier quoted context omitted.
Basically the syntax for specifying keyword arglists is based on assoc lists. The calling syntax is based on property lists. There is nothing to be gained by hashtables. The Common Lisp keyword syntax actually is a bit more powerful then what your PCL example shows: (defun foo (&key ((var keyword) init var-arg-supplied-p) ...) Generally I think it is a slight mistake to use specific data types in arglists - basically…
> Generally I think it is a slight mistake to use specific data types in arglists - basically mixing syntax and data types. That's kinda what alists and plists do! They mix up the abstract "map" or "table" data structure (something that maps keys to values) with some concrete implementation of it. '((key . value) (key . value)) and '(key value key value) are literal representations of two particular map-like data str…
(defun foo (&key foo) ...)
In Common Lisp an implementation can implement a call like (foo :bar 10) how it wants. There is nothing said about lists, hash tables, property lists or assoc lists.Whereas having a syntax for hash table {} and using this syntax in definitions/calls clearly indicates a conflict. What is it? Coincidence? Purpose?
Re: A Haskell Programmer Tries to Learn Racket
#163Earlier quoted context omitted.
The idea of a twitch.tv stream sounds interesting, with viewers throwing small problems at the coder to solve as they fumble around with a new language.
In this vein I've been pondering doing a livestream of a LFS install for a while, just for funsies. I wonder if anyone would actually watch it.