Ocaml課題にて
Plaster氏の疑問もありちょっと考えてみた。
#let id x = x;; #id id;; - : '_a -> '_a =
ここでなぜ'_aとなってしまうのか、と言うことに関して。
例えば、以下のような場合はどうだろうか。
#let f x y = x := y;y;; val f : 'a ref -> 'a -> 'a =
この場合、型多相を受けて型多相を返す関数であるが、副作用を持つ。
と思ったんだが、これだと別に問題が無い気もする。あと、もうちょっと考えてみたいんだけども。