Concurrent Clean : Haskell : concatN
[id:oto-oto-oto:20060629:1151588922]
ん?これは、dependent typeになるのかな?
Cleanの型システムでは、これが限界か?(Haskellも同様?)
Start = concatN 2 (L [L [L [V 1,V 2,V 3],L [V 4,V 5,V 6]],L [],L [L [V 7],L [V 8],L [V 9]]]) ::ListValue a = L [ListValue a] | V a (++.) infixr 5 (++.) (L a) (L b) = L (a ++ b) concatN _ (L []) = L [] concatN 0 (L xs) = L xs concatN n (L [L x:xs]) = concatN (n-1) (L x) ++. concatN n (L xs)