Skip to content

Commit e4f49c8

Browse files
committed
P121
9.3.3 組み込み関数の準備
1 parent 06e296f commit e4f49c8

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

interp.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,15 @@ def fibonacci(n)
151151
tree = minruby_parse(str)
152152

153153
# 3. 計算の木を実行(計算)する
154-
genv = { "fibonacci" => ["builtin", "fibonacci"], "fizzbuzz" => ["builtin", "fizzbuzz"], "add" => ["builtin", "add"], "p" => ["builtin", "p"] }
154+
genv = {
155+
"p" => ["builtin", "p"],
156+
"require" => ["builtin", "require"],
157+
"minruby_parse" => ["builtin", "minruby_parse"],
158+
"minruby_load" => ["builtin", "minruby_load"],
159+
"minruby_call" => ["builtin", "minruby_call"],
160+
# "add" => ["builtin", "add"],
161+
"fizzbuzz" => ["builtin", "fizzbuzz"],
162+
"fibonacci" => ["builtin", "fibonacci"],
163+
}
155164
lenv = {}
156165
evaluate(tree, genv, lenv)

ruby_made_by_ruby.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,3 +1397,15 @@ L41にて `mhd[0]` を参照したが `nil` だった
13971397
関数名を指定して `genv` から関数の情報を取得しようとしたが、 `genv["関数名"]` が `nil` だった
13981398
`genv["関数名"]` が `nil` ということは、組み込み関数、またはユーザ関数が定義されていないことが推測される
13991399
1400+
# 9.3.3 組み込み関数の準備
1401+
1402+
MinRubyインタプリタが使っている組み込み関数は以下のとおり
1403+
1404+
- p
1405+
- require
1406+
- minruby_parse
1407+
- minruby_load
1408+
- minruby_call
1409+
1410+
Rubyの関数(実際はminruby gemの関数)に丸投げする
1411+

0 commit comments

Comments
 (0)