haskell的方法是什么?
for (int i = 0 ; i < 1000 ; i++)
for (int j = 0 ; j < 1000 ; j++)
ret = foo(i , j ) #I need the return value.
更多背景:
我正在解决euler 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/