COMMON LISP JP > Archives > 2013/04/23

2013/04/23 07:01:29 UTCkazu
#
Land of Lisp に関する質問です。xxiv ページに、パラメータ多相は最初 Lisp で作られたとあるんですが、これは正しいのでしょうか? wikipedia には ML と書かれていますし、僕もそう認識していました。
#
http://en.wikipedia.org/wiki/Parametric_polymorphism
2013/04/23 07:29:09 UTCshiro
#
確かに。ここでは流れがLisp vs クロマニヨン言語なんで、原書の通りにさらっと訳しちゃったんですが、Lispではパラメータ多相をやるにもマクロでごにょごにょするか
#
MOP使うか、いずれにせよ言語が陽にサポートしてたわけじゃないですし、Lisp起源とするのは無理がありますね。
2013/04/23 07:34:08 UTCichimal
#
学部時代に竹内先生が「lengthはリストの中身の型を気にしない」こととパラメトリックポリモーフィズムを関連付けて語っているのを聞いた覚えがあります。
#
それを聞いて、(継承がどうこうをさておけば) lisp は born to OO なのだなぁ、と思った記憶があります。とはいえ、竹内先生の発現の詳細は憶えていないので、細かいニュアンスは、今となってはわかりません
2013/04/23 07:37:21 UTCshiro
#
むー、「気にしない」のも多相のサブセットではありますが、「気にする」ことが出来ない以上 (「Xのリスト」「Yのリスト」といった表現をプログラム中で直接利用する手段がない)、それをもってパラメトリック多相だと言うのは苦しいですね。
2013/04/23 08:05:50 UTCkazu
#
僕の理解では、パラメータ多相は静的型付き関数型言語が起源で、命令型言語に輸入されたときに名前が総称関数と変更されたんだと思っています。
#
あと、こちらは単なる与太話ですが、Arc は紹介するに値するほど活発なんでしょうか? 紹介するなら Racket の方がよかったと個人的には思います。
2013/04/23 08:16:51 UTCshiro
#
私もそう思います>パラメータ多相。Lispではそもそもやろうとする動機があまりないですし。性能にシビアな場所で使える可能性はありますが、大抵の場合は型をパラメータにするよりももっと直接的なチューニング方法があるでしょう。一方で型検査の恩恵は受けられないわけですし。
#
あとArcについてですが、Land of Lispの原書の執筆が数年かかってて、翻訳がそこからさらに2.5年遅れなので察してください。
2013/04/23 11:45:13 UTCkazu
#
ああ、執筆当時は今とは違った事情だったんですね。納得です。
2013/04/23 12:12:49 UTCg000001
#
私も個人的な感想ですが、やっぱりArcじゃないと締まらない気がします。
#
Racketは、姉妹本的なRealm of Racketが近日出るのでこっちも期待ですね。
#
http://realmofracket.com/about.html