nano を使った Ruby のインタラクティブな環境を作ってみたくなったので mrb (micro interactive ruby) を作ってみた。Readlineライブラリは標準ではインストールされていないので、Synaptic で libreadline-ruby1.9 をインストールする必要がある。下の mrb を ~/bin ディレクトリに入れて、chmod +x mrb で実行可能にしておく。
起動は、端末のコマンドプロンプトから mrb と入力する。一行のプログラムなら入力して Enter キーを押すと実行されて戻り値が表示される。複数行のプログラムの場合は :e コマンドで nano を起動する。プログラムを編集した後、:r コマンドでプログラムを実行する。実行されたプログラムが関数の定義であれば、定義された関数を mrb のコマンドラインで実行できる。 実行例 $ mrb mrb> 1 + 2 3 mrb> :e def fact(n) in n == 0 1 else n * fact(n-1) end end mrb> :r nil mrb> fact(5) 120 プログラム名:mrb 下のプログラムで、xxxxxx は実際のユーザのアカウントに、eval のeは半角に置き換えてください。 #!/usr/bin/ruby require "readline" include Readline def edit system "nano /home/xxxxxx/bin/sandbox" end def run IO.read("/home/xxxxxx/bin/sandbox") end loop do begin line = readline("mrb> ", true) case line when ":e" edit line = "" when ":r" line = run end p eval(line, TOPLEVEL_BINDING) rescue SyntaxError, LoadError, StandardError STDERR.puts "Warning: #$!" end end
by tnomura9
| 2009-12-04 22:30
| NetWalker
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||