4 ms·
I'm the author of this, I made the web REPL also. http://dahlia.ruree.net/try-lisphp/ http://dahlia.ruree.net/try-lisphp/ Well, of course, it uses a sandbox e
by dahlia 16y ago
I'm the author of this, I made the web REPL also.
http://dahlia.ruree.net/try-lisphp/ http://dahlia.ruree.net/try-lisphp/
Well, of course, it uses a sandbox environment.
- mahmud 16y agoFrom 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))