【发布时间】:2013-05-05 12:35:39
【问题描述】:
我有一个表示类型签名的数据结构,这个数据结构是一棵树,在第一张图片中以红色为例。我想要黑色的,到目前为止我只有橙色的(第二张图片),它是类型树,但与左侧相关联。
这是我目前得到的橘子树(跟随橙色箭头)
我已经通过漂亮地打印树然后用解析器组合器解析它来解决这个问题,但是这种低效率是不希望的。我想我可以有另一种算法来从橙色树转换为黑色树,但如果不是组合两个算法,我可以只写一个会更好。
当我在上面写我的解决方案时,我会将它标记为 Haskell。我可以提供代码来获得像红树这样的数据结构,但我认为这只会使解决方案的尝试复杂化..
我想知道这个算法是否有名称和/或红树中操作员位置的名称是什么。是前缀吗?
谢谢。
【问题讨论】:
-
您拥有的是
(a -> b) -> c。你得到的是(a -> b) -> c。你想要的是a -> (b -> c)。我认为您在决定想要什么结果时犯了一个错误。 -
@DanielFischer 确实,我现在决定在堆栈的帮助下获得我想要的结果,感谢您阅读我的烂摊子
标签: haskell tree binary-tree computer-science