以下のサンプルで明示的に再帰することなく、リスト内のコンストラクタの最初のオカレンスを見つける良い方法はありますか?リストから特定のコンストラクタの最初の発生を取得するための慣用的方法
data Elem = A Int | B Char deriving Show
getA :: [Elem] -> Maybe Elem
getA [] = Nothing
getA (e:es) =
case e of
A a -> Just (A a)
_ -> getA es
これは素晴らしいものです。ありがとうございます! – martingw
私は本当にこのソリューションがどのようにリストの理解を使用して、単に目的のデータコンストラクタ以上のパターンマッチングが必要な回避策が好きです。 @hammarで使用されている空のレコードパターンを使って改善することができます。 –
@IonuţG.Stanは将来合意したと同意した。 –