Emacs Lisp と Ruby

Emacs LispRuby の勉強を並行して行っている。その率直な印象として、LispRuby は似ている。Ruby はユーザーフレンドリーな Lisp という感じだ。表層部分(字句、構文)は違えど、内部の実装(構文木になる辺りから)はかなり似通ってるんじゃなかろうか。素人の勝手な想像だけど、通底しているものがあると思う。

LispSmalltalkRuby

という感じか。*1

Lisp をちょっとかじってから Ruby の勉強を始めると、Ruby の構文の向こう側、舞台裏にあたるところに(なんとなくではあるが)Lisp が透けて見えてくる。

イテレータとか、ブロックつき呼び出しって、Lisp で書くとこんな感じになってるんだろうな。とすると構文木はこんな感じか……

みたいなことを考えながら理解していくので、勉強も比較的さくさくと進む。*2

一方、似たような名前で似たような機能が提供されているため、同時に学習を進めると頭の中がゴチャゴチャになるところもある。

しかし、Ruby の理解が深まる上に Emacs もセットでものにできるこの並行学習の組み合わせは非常に (゚д゚)ウマー だと思う。

たのしいRuby 第2版 Rubyではじめる気軽なプログラミング

たのしいRuby 第2版 Rubyではじめる気軽なプログラミング

Emacs Lispリファレンスマニュアル

Emacs Lispリファレンスマニュアル

*1:Smalltalk は使ったことない。Objective-C からの類推

*2:Ruby のソースを読んだわけではないので、実際は全然違うのかも(;^ω^)