Home > プログラミング > forall A

forall A

Haskell で forall A. A -> A 系の型を作ってみる.まずもっとも単純に.

let x = x

t を型変数として x :: t で,undef 以外の何者でもない気がする.

んで,次.

let f x = x

これで f :: t->t . id 関数なような.

続いて

let y f = f (y f)

これで y :: (t->t)->t . fixpoint 関数とうか Y コンビネータなような.

ついでに,

let g y z = if True then y else z

とすると g :: t->t->t になる.意味のある関数ではないが... さて,これ以降はどうなるのだろうか?

ついでなので,forall a,b,... . a -> b -> ... も作ろうとすると

let f x y = f x y

とかで引数の数を増やせばいくらでもいける.意味はないけど.意味のあるものってどれくらいあるんだろう? undef, id, fixpoint 以外に意味のあるのがあるか?

★下記に2つの英単語をスペースで区切って入力してください

Home > プログラミング > forall A

Search
Feeds

Page Top