Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
WebLisp: A Lisp Interpreter that runs inside the browser (christophdietze.com)
27 points by fluffster on May 11, 2009 | hide | past | favorite | 16 comments


And a quick shout-out to JSLisp : http://joeganley.com/code/jslisp.html . That was an educational piece of JS for me.


Hey, thanks! I wrote that. I went here to post it, and it was already here.


Outstanding.


very cool!


Arclite is a subset of Arc written in Javascript.

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)


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.


How many of these are there anyway?



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:

  (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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: