gpt4 book ai didi

F# 中断 while 循环

转载 作者:行者123 更新时间:2023-12-03 13:17:07 28 4
gpt4 key购买 nike

有什么办法可以做到,比如 C/C# ?
例如(C#风格)

for (int i = 0; i < 100; i++)
{
if (i == 66)
break;
}

最佳答案

最简洁的答案是不。您通常会使用一些高阶函数来表达相同的功能。有许多函数可以让你做到这一点,对应于不同的模式(所以如果你描述了你到底需要什么,有人可能会给你一个更好的答案)。

例如,tryFind函数从给定谓词返回的序列中返回第一个值 true ,它可以让你写这样的东西:

seq { 0 .. 100 } |> Seq.tryFind (fun i ->
printfn "%d" i
i=66)

在实践中,如果您正在表达一些高级逻辑并且有相应的功能,这是最好的方法。如果你真的需要表达类似 break 的东西,您可以使用递归函数:
let rec loop n = 
if n < 66 then
printfn "%d" n
loop (n + 1)

loop 0

一个更奇特的选择(效率不高,但可能对 DSL 很好)是您可以定义一个计算表达式,让您编写 breakcontinue . Here is an example ,但正如我所说,这并不那么有效。

关于F# 中断 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16543548/

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