我正在寻找一种方法来做米兰达while-loops或for-loops。米兰达while-和for-loops
我试图做类似
while(blablanotfinished)
{
if(a=true)blabla
else blabla
}
我正在寻找一种方法来做米兰达while-loops或for-loops。米兰达while-和for-loops
我试图做类似
while(blablanotfinished)
{
if(a=true)blabla
else blabla
}
米兰达没有while或for循环(无论如何都不会有多大意义)。在大多数情况下,您可以改用高阶函数。如果没有更高阶的函数来满足你的需要,你可以使用递归。
例如,如果您有以下while循环的命令式语言:
f(start) {
x = start
while(!finished(x)) {
x = next(x)
}
return x
}
你会递归地表达它米兰达这样的:
f x = if finished x then x else f (next x)
在米兰达(和一般的,在纯函数式编程语言)使用循环结构像的同时,FOR等气馁。你需要通过递归进行迭代。
与许多其他功能语言一样,Miranda没有for-while循环。相反,你使用递归编写循环,list comprehensions或higher-order functions。