我想知道haskell中是否有一個函式來確定串列中的每個元素是否在另一個串列中。我自己寫的,但它似乎會在Prelude或Data.List
each :: Eq a => [a] -> [a] -> Bool
each xs ys = foldl (\acc x -> if x `elem` ys then True && acc else False) True xs
這樣的東西已經存在了嗎?
uj5u.com熱心網友回復:
您特別想要的集合操作不在 Prelude 中,但all使定義有些瑣碎(盡管不一定有效)。
-- Check if every element in xs is in ys (i.e., is xs a subset of ys)
each xs ys = all (`elem` ys) xs
假設您的串列沒有重復值,您可以嘗試(\\).
import Data.List
-- Check if removing all elements in ys from xs produces an empty list.
each xs ys = null (xs \\ ys)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482702.html
標籤:哈斯克尔
