【发布时间】:2020-11-12 10:07:43
【问题描述】:
我正在尝试为以下 Haskell 函数绘制抽象树:
f t = t + t
twice f t = f(f(t))
twice f 1
我在网上找到的示例(例如下图)很容易理解,但我想我在函数名称方面迷路了。
我目前拥有的树是:
但这似乎有点不完整,或者我遗漏了什么?
如果有人可以帮助/指出我正确的方向或分享任何好的资源,我将不胜感激。提前致谢。
【问题讨论】:
-
您想要一个 AST 到底是什么?没有函数的 AST 这样的东西。函数是 Haskell 值(运行时实体)。语法实体是例如声明和表达式。这个片段有两个声明和一个表达式。
-
我想在 AST 中表示“twice f 1”,我显然没有正确表达这个问题,但我也不知道该怎么做。感谢您的评论。
-
twice f 1的句法分析不包括f的定义。任何成分是否有定义都无关紧要;dingo koala wombat的树具有相同的结构。
标签: haskell abstract-syntax-tree