functional-programming - Miranda while 和 for 循环

标签 functional-programming miranda

我正在寻找一种在 Miranda 中执行 while 循环或 for 循环的方法。

我正在尝试做类似的事情

while(blablanotfinished)
{
if(a=true)blabla
else blabla
}

最佳答案

Miranda 没有 while 或 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)

关于functional-programming - Miranda while 和 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697920/

相关文章:

javascript - zipAll 函数(例如 lodash/fp)的流类型是什么?

haskell - 在惰性函数式语言的模板实例化求值器中实现 `case` 表达式有困难吗?

miranda - mira 的命令历史记录?

functional-programming - 米兰达错误无法在第 12 行将 [[char]] 与 [char] 统一起来

functional-programming - 我只是没有继续!

Haskell 类型表示另一种类型的子集

recursion - 在 Ocaml 中使用 "and"进行多个相互递归函数

javascript - 带递归的 JS Curry 函数