I also have posted a very ugly parser for a minimal subset of
S-expressions at "http://www.jsoftware.com/jwiki/Scripts/Scheme".
NB. tokenizer and reader
spcp =: e.&(9 10 11 12 13 32{a.)
tok1 =: (((~:1&|.)@:spcp+.(+.1&|.)@:(e.&'()'))<;.2])
tok =: ((#~-.@:spcp@:{.@:>"0)@:tok1@:(,&' ')) ::[:
rdrc =: ('()'i.{.@:>)
rdrs =: [EMAIL PROTECTED](rdrc@:{.)
rdrb =: (<@:}: , rdrs@:>@:{:) @: rdrs@:}.
rdre =: <@:}.
rdra =: {. , rdrs@:}.
rdr1 =: {.@:rdrs@:(,&(<')'))
rdr =: (rdr1 @: tok) ::[:
echo rdr 0 :0
(((lambda (fact) (set! fact
(lambda (n) (if (< n 1) 1 (* n (fact (- n 1)))))) fact) 0) 5)
)
Ambrus
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm