【发布时间】:2013-04-18 09:34:36
【问题描述】:
我试图将通用二叉树表示为一对。
我将使用 SML 语法作为示例。这是我的 btree 类型定义:
datatype btree = leaf | branch of btree*btree;
所以,我想写一个函数,给定一个 btree,打印以下内容:
bprint leaf = 0
bprint (branch (leaf,leaf)) = (0,0)
bprint (branch (leaf, branch (leaf,leaf))) = (0, (0, 0))
等等。
问题是这个函数总是返回不同的类型。这显然是 SML 的问题,也可能是其他函数式语言的问题。
有什么想法吗?
【问题讨论】:
-
我不确定您的要求是什么。为什么你的函数需要返回元组?您需要将结果用作元组吗?让它返回一个字符串会不会有问题?
-
@sepp2k 不,我没有要求。我只想将 btree 的图形表示打印到标准输出。使用元组是我唯一想到的。如果您有其他观点,请分享!
-
好吧,如果您希望能够在其他地方使用函数的结果,除了将它们打印到屏幕上,使用字符串就可以了。如果你不这样做,你也可以让你的函数打印树。无论如何,这就是它的名字所暗示的。
-
@sepp2k 不,重复使用函数的结果不是强制性的。
标签: functional-programming binary-tree sml