2
1つの文字列と最大3つの文字列を含むリストをどのように表現できますか?このようなHaskellでこの型を表現する方法
:
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveTraversable #-}
data ListUpTo3 a
= Zero
| One a
| Two a a
| Three a a a
deriving (Functor, Foldable, Traversable)
Functor
、Foldable
、およびTraversable
インスタンス(すべてではなく)多くを回復するために利用可能な便利な機能の:
osztaly = [("András", ["mákos", "meggyes", "almás"]), ("Joli", ["túrós"]), ("Anna", ["almás", "almás"]), ("Tamás", []), ("Mari", ["almás", "meggyes"]), ("Vera", [])]
'fromList [1 ..]'が発散する代わりにNothingを返すように、エラーの場合は '(_:_:_:_:_)'とパターンマッチングする方がよい。 – amalloy
@amalloyありがとう、私は '3'をより明らかに設定可能にする同様の修正で更新しました。 –
これ以降、 'osztaly'はこの型シグネチャを持つことになるでしょう:' osztaly :: [(String、ListUpTo3 String)] ' –