簡體   English   中英

Haskell List理解打印只有偶數

[英]Haskell List comprehension printing only even numbers

 let nums = [4,5,2,6,2,6,44,1213]

我必須使用列表推導來過濾由nums定義的列表,以便它不包含任何偶數或任何大於50的數字

我不知道為什么我不明白這一點!

 [x | x <- [nums], x == even, x <= 50]

要過濾不大於50的偶數:

[x | x <- nums, even x, x <= 50]

要過濾不大於50的奇數:

[x | x <- nums, not $ even x, x <= 50]

試試[x | x <- nums, even x, x <= 50] [x | x <- nums, even x, x <= 50] nums已經是一個列表,當你在它周圍添加額外的方括號時,它意味着x將迭代列表[nums]的元素,而不是列表nums 你也不應該將xeven進行比較。 even是一個函數,而不是一個值,它有類型even :: Int -> Bool ,所以使用它作為even x 這就像說x == (<= 50) ,這沒有多大意義。

暫無
暫無

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

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