Haskell函数赢得';我不工作,我做错了什么?
嗨,我正在尝试从列表中删除所有m的倍数(例如[2..100]) 我的代码:Haskell函数赢得';我不工作,我做错了什么?,haskell,Haskell,嗨,我正在尝试从列表中删除所有m的倍数(例如[2..100]) 我的代码: crossOut :: Int -> [Int] -> [Int] crossOut n ns = [ x | x <- ns , x /= (n*x)] crossOut::Int->[Int]->[Int] 划掉n ns=[x | xx/=(n*x)测试x本身是否是n倍,这是行不通的。改为试试x`mod`n/=0。你的函数在用英语阅读时,听起来像是:“ns中的任何x,其中x不等于n倍x,对于某些输
crossOut :: Int -> [Int] -> [Int]
crossOut n ns = [ x | x <- ns , x /= (n*x)]
crossOut::Int->[Int]->[Int]
划掉n ns=[x | xx/=(n*x)
测试x
本身是否是n
倍,这是行不通的。改为试试x`mod`n/=0
。你的函数在用英语阅读时,听起来像是:“ns中的任何x,其中x不等于n倍x,对于某些输入n”。除了n=1之外,这将始终为真,因此不会删除任何元素