【发布时间】:2013-02-09 08:53:27
【问题描述】:
我有一个任务是在 Haskell 中创建一个计算器程序。例如,用户将能够通过以下命令行使用计算器:
>var cola =5; //define a random variable
>cola*2+1;
(print 11)
>var pepsi = 10
>coca > pepsi;
(print false)
>def coke(x,y) = x+y; //define a random function
>coke(cola,pepsi);
(print 15)
//实际上比上面更复杂
我不知道如何在 Haskell 中进行编程。我现在能想到的就是将命令行读取为字符串,将其解析为令牌数组。也许通过数组,检测诸如“var”、“def”之类的关键字,然后调用函数 var、def,它们将变量/函数存储在 List 或类似的东西中。但是,我如何存储数据以便以后在计算中使用它们呢?
我也是在正确的轨道上,因为我实际上很困惑下一步该做什么? :(
*另外,我不允许使用 Parsec!*
【问题讨论】:
-
你可以用
lex,对吧? -
编写您自己的小型解析器组合库!这会很有趣,你会学到很多关于单子和应用函子的知识:)
标签: haskell calculator