【发布时间】:2015-10-13 17:15:30
【问题描述】:
如何在 Haskell 中编写如下伪代码?
x=0
for (i from 0 to 100):
j=0
while ( f(i,j) >0 ):
x+= f(i,j)
j+=1
(f一些不重要的功能。)
我想出了这样的东西:
a= [x| i<-[0..100], let s = takeWhile (\k-> (f i k > 0)) [0..],
j<- s, let x = f i j ]
然后Sum a 完成这项工作,但我需要计算f i j 两次,这有点多余。
这可以通过只计算一次的f 或一些运行速度更快的更好的代码来完成吗?
【问题讨论】:
标签: loops haskell for-loop while-loop