我正在寻找一种在Miranda中执行while循环或for循环的方法。
我正在尝试做一些像这样的事情
while(blablanotfinished)
{
if(a=true)blabla
else blabla
}发布于 2011-10-09 00:05:42
Miranda没有while- or -for循环(如果没有可变状态,这就没有多大意义了)。在大多数情况下,您可以使用高阶函数来代替。在没有高阶函数做你需要的事情的情况下,你可以使用递归。
例如,如果在命令式语言中有以下while循环:
f(start) {
x = start
while( !finished(x) ) {
x = next(x)
}
return x
}您可以在Miranda中递归地表示它,如下所示:
f x = if finished x then x else f (next x)发布于 2011-10-08 23:56:01
在Miranda中(通常,在纯函数式编程语言中),不鼓励使用WHILE、FOR等循环结构。你需要通过递归进行迭代。
发布于 2011-10-09 00:00:19
像许多其他函数式语言一样,Miranda没有for-或while-循环。相反,您可以使用递归、list comprehensions或higher-order functions编写循环。
https://stackoverflow.com/questions/7697920
复制相似问题