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

Reply via email to