kiyoka.2008_03_04 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2008_03
55555555555555555555555555555
5

[Ruby][プログラミング] Schemerにとって理想のRubyとは(2)

5

kiyoka.2008_02_25の続き。

5

Rubyにnamed letみたいなのが欲しい

5

再起でレキシカルアナライザが自然に書けるよ。

5
def lexer( f )
5
  tokenList = [ ]
5
  let loop { |ch = f.readchar, prev, token = ""| 
5
    case ch
5
    when f.eof?
5
    else
5
      # トークンの蓄積
5
      case ch
5
      when ' ' '\t'
5
        tokenList << token
5
        token = ""
5
      else
5
        token += ch
5
      end
5
      loop( f.readchar, ch, token )
5
    end
5
  end
5
  tokenList
5
end
5

本物のRubyにはないコーディングは、たぶん次の三つだけだと思う。

5
ブロック構文の引数の初期値指定
5
let構文
5
Procオブジェクトを.call()を付けなくても呼出せる
5

要するに、Schemerは何でもλに見えてしまうので、Rubyにもそれを期待してしまう。

5

もしこれが出来てもRubyの構文自体はあまりくずれないと思うけどなぁ。