gpt4 book ai didi

.net - F#函数匹配

转载 作者:行者123 更新时间:2023-12-01 11:33:25 25 4
gpt4 key购买 nike

在 F# 中有没有一种方法可以定义一个函数,该函数给出所有自然数的总和,直到提供的整数参数,而无需使用 match 构造。

也就是说,为什么下面的代码是错误的?

let Sum 0 = 0
let Sum n = n + Sum (n - 1)

最佳答案

如果您特别想要递归形式而不使用match,只需使用常规条件:

let rec Sum n = 
if n = 0 then 0 else n + Sum (n-1)

模拟 Haskell 的惯用方法是:

let rec Sum = function
| 0 -> 0
| n -> n + Sum (n-1)

但是你实际上不需要递归,因为有一个封闭的形式;查看@bytebuster 代码中“太明显”的部分。

关于.net - F#函数匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30013280/

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