gpt4 book ai didi

recursion - F#中的递归记录

转载 作者:行者123 更新时间:2023-12-04 16:26:12 27 4
gpt4 key购买 nike

我和一个 friend 正在阅读 F#,目前正在处理记录。

我们为代表一个人做了以下记录:

type Person =
{name: string;
father: Person;
mother: Person;}

F# Interactive 接受它,并且在某种程度上,该类型是有意义的,只是我们看不到如何使用它。当我们试图申报一个人时,我们必须在申报点申报 parent ,依次申报他们的 parent 等等。有没有办法实际使用这种类型?如果没有,我们为什么能够创造它?

PS:我们很清楚,由于 parent 是可选的,我们应该用选项 (Some x | None) 类型封装它们。

编辑

我的问题不是如何解决上述问题,解决方案已经写在 PS 中。
我的问题是,我可以实际使用上述类型吗,例如声明上述表格的个人记录?如果没有,我一定制作了一个无法使用的类型。为什么我可以做出这样的类型?

最佳答案

Lee 展示了一个更有用的定义,但您可以创建 Person 的实例。类型:

let rec loopy = { name = "loopy"; father = loopy; mother = loopy }

或者
let rec male = { name = "male"; father = male; mother = female }
and female = { name = "female"; father = male; mother = female}

当然,如果您正在模拟真人,这些根本没有帮助,但编译器不知道这一点。例如,如果您尝试定义循环,类似的递归类型可能会很有用。

关于recursion - F#中的递归记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990747/

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