Ric*_*ths 3 f# functional-programming matching
else语句之前的行显然是期待一个单元但是得到了一个布尔值.我刚刚开始使用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]
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我如何在这些帖子中保持间距,我将不胜感激!
最后一点有点不对 - 应该是
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
Run Code Online (Sandbox Code Playgroud)
你是从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]
Run Code Online (Sandbox Code Playgroud)
对于Stackoverflow上的格式化,只需粘贴代码然后突出显示并按ctrl + k或点击{}按钮自动将该部分置于代码模式(代码缩进四个空格,超过普通文本)