Lisp-1とLisp-2
今までScheme系とCommonLisp系って勝手に呼んでたけど、こういう用語があったのか。
最近、「CommonLispはLisp-2で、SchemeはLisp-1である」という文章を読んだ
http://www.rubyist.net/~matz/20070419.html#p01
名前空間がひとつ(関数と変数に区別がない)のがLisp-1で、 区別があるのがLisp-2であるということだそうだ。なるほど。
だとすると、PythonやJavaScriptはLisp-1で、RubyはLisp-2だな。
「func.call(arg)なRuby」がCommon Lisp(っていうかLisp-2)であることは事実ですが、「$coderef->(@args)なPerl」も同類だと思いますよ。せめて「$coderef(@args)」とできないと。
http://blog.livedoor.jp/dankogai/archives/50967006.html
Pythonみたいに、「関数呼出しとは関数リファレンス取得と呼び出し」に分割できないとLisp-1(Scheme)とはいえないと思います。