lisp on yarv製作日誌4

今日は関数を定義できるようにしました。

 lblock
   (def add (x y)
      (+ x y))

   (puts (add 20 30))
  end
 
 # => 50

Rubyにあわせてdefと名前を使うことにしました。

それから、lispで定義した関数はRuby側からも呼び出せます。

 lblock
   (def minus (x y)
      (- x y))
  end

  minus(50, 10)
 
 # => 40

今回の関数定義は、パーサのところで頑張ってRuby構文木と同じになるように
しました。