loops - 遍历 Haskell 中的两个变量

标签 loops haskell recursion tail-recursion

这样做的haskell方法是什么?

for (int i = 0 ; i < 1000 ; i++)
      for (int j = 0 ; j < 1000 ; j++)
              ret =  foo(i , j )           #I need the return value.

更多背景:
我正在解决欧拉problem 27 ,我得到了:
 value a  b =
     let l = length $ takeWhile (isPrime) $ map (\n->n^2 + a * n + b) [0..]
     in (l, a ,b)

下一步是通过遍历所有可能的 a 和 b 来获取元组列表,然后进行以下处理:
foldl (\(max,v) (n,a,b)-> if n > max then (n , a * b) else (max ,v) ) (0,0) tuple_list

但我不知道如何遍历两个变量..谢谢。

最佳答案

使用嵌套列表推导。这里 'foo' 是 '(,)'':

[ (i,j) | i <- [0 .. 999], j <- [0 .. 999] ]

或布局以使嵌套更清晰:
[ foo i j
| i <- [0 .. 999]
, j <- [0 .. 999]
]

关于loops - 遍历 Haskell 中的两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286318/

相关文章:

c++ - 查找一棵树是否为单声道(所有元素都是唯一的)的函数?

c - C 中的快速排序 : syntax error and undeclared identifiers

c++ - For 循环变量似乎无缘无故地走向 hell ?

java - Android音频不会循环播放

c - 以表格格式打印 ASCII

python - 我如何从字符串中获取特定单词的下两个单词?

haskell - Haskell 中是否可以重载逻辑运算符(&& 例如)?

haskell - 是否可以在 Yesod 的消息文件中添加注释或 HTML 标签?

haskell - 在 snap 中使用 reader monad(或者在 snap 中使用 monad 转换器)

java - 理解这个递归函数