gpt4 book ai didi

f# - 谁能告诉我这个 F# 片段有什么问题?

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

else 语句之前的行显然期待一个单位,但却得到一个 bool 值。我刚开始使用 F#,但无法理解这一点。

由于我以前从未使用过 Stackoverflow,所以我有点与布局作斗争,而且代码框仍然让我感到困惑!我相信原件中的间距是正确的。

let m = Dictionary<int, int>() 

let rec fib i =
match i with
| 1 -> i
| 0 -> i
| _ ->
if m.ContainsKey(i) then
if m.[i] > 0 then
m.[i]
else
let x = fib(i - 1) + fib(i - 2)
m.Add(i, x)
m.[i]

如果有人能告诉我如何在这些帖子中保持间距,我将不胜感激!

最佳答案

最后一点有点不对——应该是

if m.ContainsKey(i) then  
if m.[i] > 0 then
m.[i]
else
let x = fib(i - 1) + fib(i - 2)
m.Add(i, x)
x

您正在从 if 语句中返回。您可能也不需要 if m.[i] > 0 。在这种情况下,您会得到

let m = Dictionary<int, int>() 

let rec fib i =
match i with
| 1 -> i
| 0 -> i
| _ ->
if m.ContainsKey(i) then
m.[i]
else
let x = fib(i - 1) + fib(i - 2)
m.Add(i, x)
m.[i]

要在 Stackoverflow 上进行格式化,只需将代码粘贴进去,然后高亮显示并按 ctrl+k 或点击 {} 按钮即可自动将该部分置于代码模式(代码在普通文本之后缩进四个空格)

关于f# - 谁能告诉我这个 F# 片段有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641953/

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