Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.34 KB | None | 0 0
  1. (define eval-expr
  2.     (lambda (expr env)
  3.         (pmatch expr
  4.             [,n (guard number? n)
  5.                 n]
  6.             [,x (guard symbol? x)
  7.                 x]
  8.             [(lambda (,arg) ,body)
  9.                 (lambda (arg)
  10.                     (eval-expr body (lambda (y)
  11.                                         (if (eq? x y)
  12.                                             arg
  13.                                             (env y)))))
  14.             [(,rator ,rand)
  15.                 ((eval-expr rator env)
  16.                     (eval-expr rand env))])))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement