Просмотр исходного кода

implement the quote special form.

that was easy. (if it is correct.)

onwards to list! (which is trickier, because it has a variable number of
arguments and we have to call evalo on all of them, in sequence.
mhh... that kind of sounds like we need a listo?)
Lucas Stadler лет назад: 11
Родитель
Сommit
1cb71c4e56
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      scm/evalo.scm

+ 3 - 0
scm/evalo.scm

19
    (conde
19
    (conde
20
     [(symbolo expr)
20
     [(symbolo expr)
21
      (lookupo expr env val)]
21
      (lookupo expr env val)]
22
     [(fresh (e)
23
        (== `(quote ,e) expr)
24
        (== e val))]
22
     [(fresh (x body)
25
     [(fresh (x body)
23
        (== `(lambda (,x) ,body) expr)
26
        (== `(lambda (,x) ,body) expr)
24
        (== `(closure ,x ,body ,env) val))]
27
        (== `(closure ,x ,body ,env) val))]