関数型プログラミング言語Haskell Part24
■ このスレッドは過去ログ倉庫に格納されています
0362デフォルトの名無しさん
2013/11/26(火) 20:53:14.13data (a :: *) :== b where Refl :: a :== a
data List a where {
Nil :: List a ;
(:::) :: a -> List a -> List a
}
infixr 5 :::
data Exists b c where {
Here :: a :== b -> Exists a (b ::: c);
There :: Exists a c -> Exists a (b ::: c)
}
sample :: Exists Int (String ::: Int ::: Char ::: Nil)
sample = There (Here Refl)
ghcの型システムの上でそれっぽいものは作れるようだけど
■ このスレッドは過去ログ倉庫に格納されています