WebLisp: A Lisp Interpreter that runs inside the browser(christophdietze.com)
christophdietze.com
WebLisp: A Lisp Interpreter that runs inside the browser
http://christophdietze.com/weblisp
16 comments
Arclite is a subset of Arc written in Javascript.
http://jonathan.tang.name/files/arclite/index.html
http://jonathan.tang.name/files/arclite/index.html
Thanks, that looks interesting.
Sweet. 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)
(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)
So, 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?
The 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.
Implementing your a subset dialect of your favorite language in a poor/hostile/new environment is quite hackish, imo.
How many of these are there anyway?
Franz, Inc. Allegro Common Lisp has Prompt and Maxima:
* http://www.franz.com/products/allegrocl/prompt/javatelnet.ht...
* http://www.franz.com/success/demos/maxima/javatelnet.html
That 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:
Type this into it:
(disassemble (lambda ()))
It should spit an assembly language listing.(disassemble (lambda ()))
Not 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" :-)No macros?