5 ms·
WebLisp: A Lisp Interpreter that runs inside the browser
- uninverted 17y agoNo macros?
- softbuilder 17y agohttp://en.wikipedia.org/wiki/Greenspun%27s_Tenth_Rule http://en.wikipedia.org/wiki/Greenspun%27s_Tenth_Rule
- mahmud 17y agoThe Tenth Rule applies only to "sufficiently complicated" programs that add so many features and support libraries that they become a poor subset of Lisp. Implementing your a subset dialect of your favorite language in a poor/hostile/new environment is quite hackish, imo.
- mpk 17y agoAnd a quick shout-out to JSLisp : http://joeganley.com/code/jslisp.html http://joeganley.com/code/jslisp.html . That was an educational piece of JS for me.
- Dilpil 17y agoHow many of these are there anyway?
- yu 17y agoFranz, Inc. Allegro Common Lisp has Prompt and Maxima: * http://www.franz.com/products/allegrocl/prompt/javatelnet.html http://www.franz.com/products/allegrocl/prompt/javatelnet.ht... * http://www.franz.com/success/demos/maxima/javatelnet.html http://www.franz.com/success/demos/maxima/javatelnet.html
- mahmud 17y agoThat is NOT a "web" Lisp; you're interacting via telnet with Franz Common Lisp, a piece of REAL software with 20+ years of history. Type this into it: (disassemble (lambda ())) It should spit an assembly language listing.
- latkinso42 17y ago(disassemble (lambda ()))
- mahmud 17y agoNot a HN textarea form input, you type that into a Common Lisp repl (interactive shell.) It should look like this: CG-USER(1): (disassemble (lambda ())) ;; disassembly of #<Function (:ANONYMOUS-LAMBDA 130) @ #x20ec218a> ;; formals: ;; code start: #x20ec214c: 0: e3 03 jcxz 5 2: ff 57 8b call *[edi-117] ; SYS::TRAP-WNAERR 5: 80 7f cb 00 cmpb [edi-53],$0 ; SYS::C_INTERRUPT-PENDING 9: 74 03 jz 14 11: ff 57 87 call *[edi-121] ; SYS::TRAP-SIGNAL-HIT 14: 8b c7 movl eax,edi 16: f8 clc 17: 8b 75 fc movl esi,[ebp-4] 20: c3 ret 21: 90 nop Proof that it's not a javascript "web lisp" :-)
- pmarin 17y agoArclite is a subset of Arc written in Javascript. http://jonathan.tang.name/files/arclite/index.html http://jonathan.tang.name/files/arclite/index.html
- fluffster 17y agoThanks, that looks interesting.
- misuba 17y agoSo, are there any in-browser lisps that, you know, do something? Maybe one that plays in the Pipes space, letting you work with feeds of various sorts?
- owinebarger 17y agoSweet. It appears to have proper tail recursion. (define (fib n) (fib-help n (lambda (fn fn-1) fn))) (define (fib-help n k) (if (<= n 1) (k 1 1) (fib-help (- n 1) (lambda (fn-1 fn-2) (k (+ fn-1 fn-2) fn-1))))) (fib 1000)