簡體   English   中英

Haskell 高階濾波器函數

[英]Haskell Higher order filter function

filter :: (a -> Bool) -> [a] -> [a]
filter (\x -> x % 2 == 0) [1,2,3,4,5]

我已經寫了上面的一段代碼。 我想取一個列表 anon numbers 從列表中返回滿足布爾表達式 x % 2 == 0 條件的數字

當我運行此代碼時,出現錯誤

解析錯誤:頂層的裸表達式 也許您打算使用 TemplateHaskell

作為 Haskell 的新手,我不知道該怎么做

去掉類型簽名( filter已經定義)並使用調用來定義一個新變量。

even_numbers = filter (\x -> x % 2 == 0) [1,2,3,4,5]

(順便說一下, even是預定義的;你可以只寫過filter even [1,2,3,4,5] 。)

如果您嘗試定義對謂詞進行硬編碼的版本filter

even_numbers :: [a] -> [a]
even_numbers xs = filter even xs

暫無
暫無

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

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