簡體   English   中英

Haskell中混亂的函數應用程序和函數組合

[英]Confusing function application and function composition in Haskell

手術

(filter (`notElem` "'\"").[(1,'a','%',"yes")])

給出一個錯誤。 如何將此過濾器正確地應用於該列表?

您遇到了幾個嚴重的問題。 首先,您的語法很古怪( .絕對不應該在那里)。 但更大的問題是,您要過濾的內容是[(Int,Char,Char,[Char])] (即包含4個元組的列表)。

並且您的列表只有一個元素,即(1,'a','%',"yes") 因此過濾仍然無濟於事。 當您提供過濾的函數必須是a -> Boolean類型時,其中a是列表中所有元素的類型。

似乎您想要某種類型的異類列表或其他內容。

. Haskell中的operator是函數組合-它將兩個函數組合在一起。

所以你的代碼

(`notElem` "'\"") . [(1,'a','%',"yes")]

看起來像notElem函數和一些列表的組成。 那是錯誤的。

刪除. ,並確保首先show該列表:

> filter (`notElem` "'\"") (show [(1,'a','%',"yes")])
"[(1,a,%,yes)]"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM