こんにちは。 機能限定版のRubyインタプリタ(MinRubyインタプリタ)を作りながらRubyとプログラミングを学ぶ連載、今回は前回に引き続き「関数」の実装です。 前回は、関数のうち、MinRubyインタプリタに最初から機能として用意しておく「組み込み関数」を実装しました。 最初に関数名のための環境を作り、そこにpなどの基本的な関数の定義を組み込んで、それをMinRubyプログラムから呼び出せるようにしました。 現状のMinRubyインタプリタは次のようになっています。 require "minruby" def evaluate(tree, genv, lenv) case tree[0] when "lit" tree[1] when "+" evaluate(tree[1], genv, lenv) + evaluate(tree[2], genv, lenv) when "-"
![関数を実装する(後編)](https://cdn-ak-scissors.b.st-hatena.com/image/square/54f345ac0e5b16702021274c459aa1b3d611b8d0/height=288;version=1;width=512/https%3A%2F%2Fascii.jp%2Fimg%2F2016%2F12%2F21%2F1610485%2Fl%2F954c5cc5a829dfbb.jpg%3F20200122)