【问题标题】:Haskell function won't work, what am i doing wrong?Haskell函数不起作用,我做错了什么?
【发布时间】:2014-09-15 14:14:59
【问题描述】:

您好,我正在尝试从列表中删除 m 的所有倍数(例如 [2..100])

我的代码:

crossOut :: Int -> [Int] -> [Int]
crossOut n ns = [ x | x <- ns , x /= (n*x)]

【问题讨论】:

    标签: haskell


    【解决方案1】:

    x /= (n*x) 测试 x 是否是 n 乘以自身,这是行不通的。请改用x `mod` n /= 0

    【讨论】:

      【解决方案2】:

      您的函数在用英文阅读时听起来像:“ns 中的任何 x,其中 x 不等于 n 乘以 x,对于某些输入 n”。除了 n = 1,这将始终为真,因此不会删除任何元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 1970-01-01
        • 2013-05-16
        • 2017-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多