list - Haskell 中的详细列表理解

标签 list haskell list-comprehension verbose

我正在使用 Haskell 查找 1 到 10000 之间具有特殊属性的整数列表。我执行以下操作

[ number | number <- [1..10000], (isSpecial number)]

然而,我时不时地想出一些特殊的属性是

  1. 难以满足

  2. 验证时间较长

结果,它在前几个示例后卡在那里。

我想知道如何使 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/

相关文章:

java - 使用 Lambda 在 Java 中合并两个不同类型(字符串和整数)的排序列表

Python - 从列表中的元组中检索元素

haskell - monads current "state of the art"是用纯语言做 IO 吗?

python - 在 Python 中生成动态列表理解

python - 为什么 Python 教程说列表理解比 map() 更灵活?

python - 循环列表的两种方式 - 区别

Android:无法为 AsyncTask:doInBackground 指定 List<String> 返回类型

monads - 为什么在编写新的 Monad Transformers 时使用样板

debugging - 为什么是:sprint is showing WHNF even when i evaluate the variable?

python - 使用列表理解嵌套 For 循环