Common Lispに似てるのはRubyじゃなくてperl
良く言われているのは、RubyがLispに似てるという話ですが、違和感を感じているというかすっきりしない感じがしてました。 perlは、意外と Common Lisp に似ている部分が多いです。Rubyは、どちらかと言えば、scheme に似てるんじゃないのかと思います。
perlとCommon Lispの2つ類似点を挙げてみます。
() が、nil。
perlでは、空文字列、0、空リストなどが、偽として扱われます。Common Lispでは、空リストは、偽(nil)として扱われます。
これは、型に対しての緩さという欠点とも捉えられますが、非常に強力な抽象化の武器にもなり得ます。その武器を使うなと言われると、ちょっと萎える。
packegeシステム。
これは、http://d.hatena.ne.jp/ytakenaka/20080818/p1 でytakenakaさんのブログにもコメントさせてもらったことですが import export use package というパッケージに関する関数(用語)の類似点は、非常に多い。機能もほぼ同様です。perlでは、機能の塊をモジュールと呼んでいるにも関わらず、定義の方法がpackageなのは、普通に考えれば不自然ですよね?Larry Wall も Common Lispを参考にしたんだな。とニヤっとしてしまいます。(真相は知らないですが)
perlは Common Lispに、Ruby は scheme に似ているんじゃないのかなという話でした。でも、やっぱりRubyはRubyという気がするな。
最後に
最後に日本のCommon Lispコミュニティの紹介です。(onlineで参加できるので、地方(静岡県)から参加させて頂いています) (途中参加/離脱/ROM歓迎)とのことなので気楽に参加できます。perl使いの人もCommon Lispに興味があれば参加すると楽しいと思います。
id:g000001さんが開催する慢性的CL勉強会@Lingr 8時だョ!全員集合
http://www.lingr.com/room/common-lisp-jp
http://cadr.g.hatena.ne.jp/g000001/ で告知されています。
ご紹介ありがとうございます!
自分はRubyもPerlも殆ど知らないのでどっちに似ているかは良く分からないのですが、
CLもRubyやPerlのように面白い言語なので、もっとはやってくれないかなと思っています!!(無理ですかねw)
こんにちは、g000001さん。
最近、Common Lispのエントリも書いていないですが、何か少しでもできることはないかと思い、はてなの片隅から宣伝させてもらいました。
> CLもRubyやPerlのように面白い言語なので、もっとはやってくれないかなと思っています!!(無理ですかねw)
perlやjavaだけをやっている人達にとっては、Common Lispを使えるようになるには結構ハードルがあるんですよね。
私もCommon Lispへの挑戦3度目くらいでようやく、触れるようになったので。
でも、慢性的CL勉強会が盛り上がってきているので、Common Lispが流行るのも近いかもですよ^^;