Seb*_*ian 2 haskell pretty-print
我在一所大学开始进行智能系统研究,我们的第一语言是Haskell.我必须承认到目前为止我并不熟悉它.本周的部分任务是开发Expr a代表基本算术运算的代数数据类型(+,-,*,/).
解决方案IMO应该是:
module Expression where
data Expr a = Number a |
Var |
Sum (Expr a) (Expr a) |
Prod (Expr a) (Expr a) |
Div (Expr a) (Expr a) |
Pot (Expr a) a
deriving (Show)
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止.任务是为我们的函数实现一个漂亮的实例.即:
从
Plus ( Pot ( Var 2)) ( Num 3)
至
x^2 + 3
所以,我不知道"漂亮"是什么意思.在搜索互联网后,我发现"漂亮"只意味着以人类可读的形式重写输出.它是否正确?如果是,那对我的功能意味着什么?我是否必须用show功能替换该pretty功能?我真的不知道从哪里开始.
我在这里读了几个类似的问题,但没有说明问题.如果有人能给我一些提示,建议,解决方案或其他什么,我真的很高兴!
是的,这就是漂亮印刷的意思.
基本上,你只需要一个将一个转换Expr a成一个函数的函数String:
myPrettyPrint :: Expr a -> String
Run Code Online (Sandbox Code Playgroud)
无论你想要什么,都要打电话,不要试图替换show.
为了实现此功能,您可能希望了解模式匹配.
| 归档时间: |
|
| 查看次数: |
1401 次 |
| 最近记录: |