テキストこの商品を含むブログを見る「RubyでつくるRuby」という素晴らしい本があって、toRubyの勉強会で毎月読んでます。そこに出てくるminrubyの話だよ。www.lambdanote.comminrubyを改造して末尾呼び出しの最適化ができないか試してみた。endendfoo(10000)カウントダウンを二つの関数をまたぐ再帰呼び出しで実装した例。サブルーチンの末尾(構文木でいう末尾?)がfunc_callだったらそこにマークをつけるようにしたので、ifの分岐先の末尾とかも対象になります。いうかminrubyにはreturnがないので分岐の先でのfunc_callに対応する必要がありました。rubyだとこんな感じでスタックが足りません。(SystemStackError)改造したminrubyで実行するとこう。10000900080007000600050004000300020001000なんとか入れ子でも動くようにした。endendコードはgistにあるよ改造したminrubyはこんなの。うまく書けるんだろうなあ。注目記事リンクgithubウィッシュリスト待ってます最新記事n月刊ラムダノートに寄稿しました。gemを動くようにした話(誰か引き取って月別アーカイブはてなブログをはじめよう!m_sekiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。