gpt4 book ai didi

haskell - 在 haskell 中翻译 while ( x < SomeTreshold )

转载 作者:行者123 更新时间:2023-12-03 06:23:14 24 4
gpt4 key购买 nike

在实现算法时,经常会发生这样的情况:您在 while 循环的每次迭代中检查某个变量是否小于某个阈值。

在命令式语言中,它看起来像:

 while ( x < TRESHOLD ) {
x = usefullStuff();
}

当然有用的东西正在以某种方式影响 x...

如何利用函数式编程范例将此构造转换为 haskell?

最佳答案

尽管我不知道你的程序是做什么的,但我有一种感觉,你会想要稍微不同地构建你的逻辑。看看论文的第 4 节 Why Functional Programming Mattes - 一些想法。它处理类似的情况,涉及使用牛顿法求方程的根。在那里,职责被划分,以便循环逻辑与逐次逼近的生成分离。

如果 usefulStuff 是一个 monad - 即具有副作用的函数,则必须使用如下内容:

whileLoop x
| x < THRESHOLD = return x
| otherwise = do x <- usefulStuff
whileLoop x

关于haskell - 在 haskell 中翻译 while ( x < SomeTreshold ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com