专家F#3.0一书的第9章介绍了如何在遍历二叉树时使用延续传递样式来避免堆栈溢出.我编写的树遍历代码几乎与本书中的代码完全相同,但我仍然得到了堆栈溢出.我的代码如下:
type 'a Tree =
| Leaf of 'a
| Branch of 'a Tree * 'a Tree
let rec mkLeftLeaningTree n tree =
if n = 0 then
tree
else
Branch (mkLeftLeaningTree (n - 1) tree, Leaf "right")
let leftLeaningTree1 = Leaf "left"
let leftLeaningTree2 = mkLeftLeaningTree 30000 leftLeaningTree1
let leftLeaningTree3 = mkLeftLeaningTree 30000 leftLeaningTree2
let leftLeaningTree4 = mkLeftLeaningTree 30000 leftLeaningTree3
let leftLeaningTree5 = mkLeftLeaningTree 30000 leftLeaningTree4
let leftLeaningTree6 = mkLeftLeaningTree 30000 leftLeaningTree5
let sizeContAcc tree =
let rec …Run Code Online (Sandbox Code Playgroud) 我THE x. A在Isabelle/HOL标准库的源代码中看到了构造.这个结构表示什么?它似乎与之相似SOME x. A.
我正在使用 Git 2.7.4。我的~/.config/git/config文件中有以下代码段:
[interactive]
singleKey = true
Run Code Online (Sandbox Code Playgroud)
但是,当我跑步时,在git add -p选择了一个大块头后,我仍然必须按 Enter 键。这可能是什么原因?