OCaml-与使用fold相关的问题__
我有几个关于左/右折叠的问题OCaml-与使用fold相关的问题__,ocaml,Ocaml,我有几个关于左/右折叠的问题 如何累积两个或多个值?如果使用元组是一个好的解决方案 如何中止折叠工作?例如,我们必须首先找到任何数字的出现,并返回位置。我的意思是休息(C++) zurgl的评论是一个很好的答案(也许可以把它移到答案区域) 您可以使用异常提前终止折叠。在我看来,最好尝试构造代码,这样就不必这样做了。无异常的代码更容易理解、更易于组合、可并行化等。我们必须首先找到任何数字的出现处,然后您必须遍历所有列表[1;1;1;1;5],无需在此中止。要处理部分递归,还有其他函数,如dropw
zurgl的评论是一个很好的答案(也许可以把它移到答案区域)
您可以使用异常提前终止折叠。在我看来,最好尝试构造代码,这样就不必这样做了。无异常的代码更容易理解、更易于组合、可并行化等。
我们必须首先找到任何数字的出现处
,然后您必须遍历所有列表[1;1;1;1;5],无需在此中止。要处理部分递归,还有其他函数,如dropwhile、takewhile。。。或者你可以定义你需要的。将折叠视为类型之间的投影,您有一个源类型和一个带有种子值的目标类型(累加器),那么折叠就是实现此转换的过程。是的,在我看来,使用元组是一个很好的解决方案。我们必须首先找到任何数字的出现处
,然后您必须遍历所有列表[1;1;1;1;5],无需在此中止。要处理部分递归,还有其他函数,如dropwhile、takewhile。。。或者你可以定义你需要的。将折叠视为类型之间的投影,您有一个源类型和一个带有种子值的目标类型(累加器),那么折叠就是实现此转换的过程。是的,IMO,使用元组是一个很好的解决方案。