Perlに対する誤解を解きたいPerlがどういう意味でLispに皮を被せたものなのかPerlの作者のラリー・ウォールは「動的言語はLispに皮を被せたもの」といいましたが、いったいこれはどういう意味なのでしょうか?PerlはLispは、表面的には、まったく違うもののように見えます。Perlの文法Perlの足し算の文法を書きます。5;Lispの文法Lispの足し算の文法。5)Perlがどういう意味でLispに皮を被せたものなのかPerlがどういう意味でLispに皮を被せたものなのか、比較してみます。演算子を真ん中に置くのは人間の都合Perlにはかっこがなく、「+」記号は真ん中に来ています。それに対して、Lispには、かっこがありますね。「+」記号が先頭に来ていますね。Lispの場合は、関数呼び出しも、演算子も先頭に来ます。命令と呼ばれるものは、常に先頭に来るのです。実は、「+」記号を真ん中に置くというのは、人間が数学の記法を書くときに、真ん中に書くということが、慣習的に行われているので、見やすいということなのです。コンピューターの側から見ると、関数呼び出し命令や加算命令というのは、先頭に来るのが自然です。実際、機械語やアセンブラでは、先頭に来るからです。「+」が真ん中に来るというのは、人間の立場から見た場合の、シンタックスシュガーなのですね。Lispは構文木自体を実行するまたリスプはかっこのネストになっていますが、これは実際には、構文木自体をを表現しています。y)」というのは、最初の「+」演算の左側のノードとして存在しているのです。左下に属するノードから順次実行されていきます。これは、ちょうどPerlが、コンパイルされて抽象構文木になった後に、最も左下のノードから順次実行されていくということと対応しています。Perlは、構文木にコンパイルされると、Lispと同じ構造になります。Lispは、リストと命令が存在するだけで、プログラムが動くことを証明したLispの偉大さは、リストと命令が存在するだけで、プログラムが動くことを証明したとうことです。リストは、動的なデータ構造で、pushとpopを行うことができます。動的なデータ構造と、命令が存在するとプログラムが動く。おっと、これは、まさにPerlではないですか。@_;}PerlとLispは、表面的な見た目は、まったく異なりますが、Perlは、人間が使いやすい用にLispに皮を被せたものだったのです。あらゆる動的言語は、この意味でLispから恩恵を受けているといって過言ではないでしょう。