小编ANA*_*der的帖子

F#类型的递归树结构

我仍然是F#的新手,并试图找出如何制作我自己的类型,可以容纳任何数量的"A"之前,如果最终应该如何一个值.

作为一个例子,它可能像:

A(A(A(A(A(0))))).
Run Code Online (Sandbox Code Playgroud)

如果我尝试制作这样的类型,我试着像这样声明:

type test = 
          | A of int
          | A of test;;
Run Code Online (Sandbox Code Playgroud)

它告诉我,我不能声明两次相同的类型,因为我有重复.有没有办法解决这个问题,或者我真的需要让最后一个节点成为另一个名字:

type test = 
          | B of int
          | A of test;;
Run Code Online (Sandbox Code Playgroud)

结果将是:

A(A(A(A(B(0)))))
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

tree recursion f#

2
推荐指数
2
解决办法
406
查看次数

标签 统计

f# ×1

recursion ×1

tree ×1