4 ms·
From a quick look, you managed to get one thing right, even though it baffles even respected language implementers: a proper stack trace on error. Most people w
by mahmud 16y ago
From a quick look, you managed to get one thing right, even though it baffles even respected language implementers: a proper stack trace on error. Most people who write a HLL interpreter in another HLL tend to cheat and implement a half-baked source to source translator.
[Edit:
Question: Why does it have T, NIL, #T and #F? what roles do these symbols play in the language; which ones are canonical truth values, which ones signify list termination, and which ones signify the empty value? This is the perennial Lisp question.]
- KirinDave 16y ago> Most people who write a HLL interpreter in another HLL tend to cheat and implement a half-baked source to source translator. Is this a jab at the Lisp tradition of compiled sublanguages?
- jimbokun 16y agoBad stack traces is certainly one of the major complaints against Clojure.
- mahmud 16y agoIt's a jab against the general case, below. A lame, wasteful little script to print out a TODO list ;-) (defun map-print (item list) (mapcar (lambda (x) (format t "~a in ~a~%" item x)) list)) (defun permute (list) (mapcar (lambda (x) (map-print x list)) list)) (defun languages () (destructuring-bind (response headers body) (trivial-http:http-get "http://mahmud.arablug.org/languages.txt") (when (= response 200) (loop for line = (read-line body nil nil) while line collecting line)))) (permute (languages))