Updated TidBit3.
This commit is contained in:
@@ -81,7 +81,7 @@ The grammar:
|
|||||||
[else (With (first names) (first vals) (binds* (rest names) (rest vals) body))]))
|
[else (With (first names) (first vals) (binds* (rest names) (rest vals) body))]))
|
||||||
|
|
||||||
(: Z : -> TIDBIT)
|
(: Z : -> TIDBIT)
|
||||||
; Z combinator!
|
; Z combinator.
|
||||||
(define (Z)
|
(define (Z)
|
||||||
(Fun (list 'f)
|
(Fun (list 'f)
|
||||||
(Call
|
(Call
|
||||||
@@ -140,10 +140,14 @@ The grammar:
|
|||||||
[(list 'with (list (symbol: name) named) body)
|
[(list 'with (list (symbol: name) named) body)
|
||||||
(With name (parse-sexpr named) (parse-sexpr body))]
|
(With name (parse-sexpr named) (parse-sexpr body))]
|
||||||
[else (error 'parse-sexpr "bad `with' syntax in ~s" sexpr)])]
|
[else (error 'parse-sexpr "bad `with' syntax in ~s" sexpr)])]
|
||||||
|
|
||||||
|
; Recur.
|
||||||
[(cons 'recur more)
|
[(cons 'recur more)
|
||||||
(match sexpr
|
(match sexpr
|
||||||
[(list 'recur (list (symbol: name) named) body)
|
[(list 'recur (list (symbol: name) named) body)
|
||||||
(Recur name (parse-sexpr named) (parse-sexpr body))]
|
(println named)
|
||||||
|
(println body)
|
||||||
|
(Recur name (parse-sexpr named) (parse-sexpr body))]
|
||||||
[else (error 'parse-sexpr "bad `recur' syntax in ~s" sexpr)])]
|
[else (error 'parse-sexpr "bad `recur' syntax in ~s" sexpr)])]
|
||||||
|
|
||||||
; Function declaration.
|
; Function declaration.
|
||||||
|
|||||||
Reference in New Issue
Block a user