我必須使elementIsInList :: Eq a => a -> [a] -> Bool函式的行為方式與elem函式的行為方式相同,但我不能使用遞回,當然也不能使用elem函式本身。我想過使用該filter函式來實作它,但我無法弄清楚它是如何filter作業的。我在正確的軌道上嗎?
elementIsInList x xs = filter(x==xs) xs
uj5u.com熱心網友回復:
x == xs沒有多大意義,x是一個要查找的元素,而xs是整個元素串列。您可以使用 lambda 運算式:
filter (\x -> x == y) xs
或中綴運算子部分:
filter (x ==) xs
此外,您需要檢查串列是否為空。如果串列為空,null :: Foldable f => f a -> Bool則回傳,True否則回傳False。然后,您需要使用 否定結果not :: Bool -> Bool。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/359161.html
上一篇:如何使用串列的內容輸出新的串列?
