2

複数のコンストラクターを持つ型の要素を含むリストがあります (例: thisのようなもの)。特定のコンストラクターに一致するリストの要素を抽出するにはどうすればよいですか?

私が理解できる1つの方法は、リスト内包表記を使用することでした。fieldsたとえば、上記の例のタイプの要素を含むリストが与えられた場合、最初のフィールドFieldを抽出できます。From

from = head [head f | From f <- fields]

それを行う簡単な方法はありますか?

4

1 に答える 1

1

コンストラクターに一致するリストをフィルタリングするには、次の関数Fromを使用できます。filter

filter (\x -> case x of From {} -> True; _ -> False) fields

次に、headを取得して最初の要素を取得します。

head . filter (\x -> case x of From {} -> True; _ -> False) $ fields
于 2012-06-04T05:42:22.780 に答える