我正在使用 Haskell 查找 1 到 10000 之间具有特殊属性的整数列表。我执行以下操作
[ number | number <- [1..10000], (isSpecial number)]
然而,我时不时地想出一些特殊的属性是
难以满足
验证时间较长
结果,它在前几个示例后卡在那里。
我想知道如何使 Haskell 中的列表理解变得冗长,所以我有一个很好的关于 Haskell 取得了多少进展的最新消息。
最佳答案
这或多或少是 Robin Zigmond 的意思:
checkNumbers :: IO [Int]
checkNumbers = filterM check [1..10000]
where
check number = do
print $ "Checking number" <> show number
pure $ isSpecial number
这将在检查每个数字之前打印“Checking number x”。随意尝试 check
函数中的任何其他效果(或者用您的话来说,“冗长”)。
关于list - Haskell 中的详细列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59040617/