プログラミング Gauch - 17 章

今週は少しサボってしまい、ようやく半分到達というところです。学習が進むにつれて、Ruby が Matz Lisp などと言われる理由が解ってきたような気がします。

  • ! ? といった命名ルール
  • 手続きを渡す手続き(コードブロック、lambda)
  • メタクラス

などなど、RubyLisp から取り入れたのかと思える*1共通点が見えてきました。準クオートは #{} の式埋め込みと同じようですし、call-with-input-file 手続きなどは Ruby の open メソッドにブロックを渡したときと同じように振る舞いますね。Ruby だけを学習していた時には意味が解らなかったけれど、Gauche を学習することで納得できた部分も。

*1:Gauche しか知らないので、一般的な Lisp は違うのかもしれない