これは本当に単純なはずですが、私はそれを回避できないようです。
独自の List クラスがあり、そのインターフェイスでhead
andを宣言しているとします。これは同種のアイテムのコレクションです。次に、インターフェイスを実装する型を作成します。tail
List
data
List
次のコードは私が思いついたものですが、動作しません: どうすれば修正できますか?
class List l where
head :: l -> a -- ERROR! How do I tell: given a list, return an element?
tail :: l -> l
data ConsList a = Nil | Cons a (ConsList a)
instance List (ConsList Int) where
head Nil = error "Empty List"
head (Cons h _) = h
tail Nil = error "Empty List"
tail (Cons _ t) = t
前もって感謝します!