Advertisement
Guest User

Untitled

a guest
May 16th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.59 KB | None | 0 0
  1. (defun Plus (a b) $Num(eval(PNODE(a))->nd.num+eval(PNODE(b))->nd.num)
  2. )
  3. (defun Minus(a b) $Num(eval(PNODE(a))->nd.num-eval(PNODE(b))->nd.num)
  4. )
  5. (defun Uminus( b) $Num(-eval(PNODE(b))->nd.num)
  6. )
  7. (defun Times(a b) $Num(eval(PNODE(a))->nd.num*eval(PNODE(b))->nd.num)
  8. )
  9. (defun Div  (a b) $Num(eval(PNODE(a))->nd.num/eval(PNODE(b))->nd.num)
  10. )
  11. (defun Mod  (a b) $Num(eval(PNODE(a))->nd.num%eval(PNODE(b))->nd.num)
  12. )
  13. (defun If (Cond Then Else) $(ENUM(Cond))?PNODE(Then):PNODE(Else)
  14. )
  15. (defun EqNonStrict (a b) $((PNODE(a)->tag==NUM&&PNODE(b)->tag==NUM)?((PNODE(b)->nd.num==PNODE(a)->nd.num)?Num(1):Num(0)):((PNODE(a)->tag==NIL&&PNODE(b)->tag==NIL)?Num(1):Num(0)))
  16. )
  17. (defun LeqNonStrict (a b) $((PNODE(a)->tag==NUM&&PNODE(b)->tag==NUM)?((PNODE(a)->nd.num<=PNODE(b)->nd.num)?Num(1):Num(0)):Num(0))
  18. )
  19. (defun LtNonStrict (a b) $((PNODE(a)->tag==NUM&&PNODE(b)->tag==NUM)?((PNODE(a)->nd.num<PNODE(b)->nd.num)?Num(1):Num(0)):Num(0))
  20. )
  21. (defun GeqNonStrict (a b) $((PNODE(a)->tag==NUM&&PNODE(b)->tag==NUM)?((PNODE(a)->nd.num>=PNODE(b)->nd.num)?Num(1):Num(0)):Num(0))
  22. )
  23. (defun GtNonStrict (a b) $((PNODE(a)->tag==NUM&&PNODE(b)->tag==NUM)?((PNODE(a)->nd.num>PNODE(b)->nd.num)?Num(1):Num(0)):Num(0))
  24. )
  25. (defun Leq (a b) $LeqNonStrict(eval(PNODE(a)),eval(PNODE(b)))
  26. )
  27. (defun Lt (a b) $LtNonStrict(eval(PNODE(a)),eval(PNODE(b)))
  28. )
  29. (defun Geq (a b) $GeqNonStrict(eval(PNODE(a)),eval(PNODE(b)))
  30. )
  31. (defun Gt (a b) $GtNonStrict(eval(PNODE(a)),eval(PNODE(b)))
  32. )
  33. (defun Eq (a b) $EqNonStrict(eval(PNODE(a)),eval(PNODE(b)))
  34. )
  35. (defun Car (a) $(eval(PNODE(a))->nd.cons.hd)
  36. )
  37. (defun Cdr (a) $(eval(PNODE(a))->nd.cons.tl)
  38. )
  39. ---
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement