0

嘿伙计们,我被卡住了,我不知道如何继续:

使用元组 (2,4) 必须执行所有操作并打印结果,例如

(2,4,'+',6),(2,4,'*',8)

我的想法是这样的

操作 x = [(x,Ops,finalValue) | x <- x, 操作 <- 操作, finalValue <- finalValue]

但是我不确定如何评估乘法加法等并计算运算结果......有什么建议可以引导我走上正轨吗?

谢谢

4

2 回答 2

4

所以首先要做的是列出操作及其名称

ops = [( (*), '*'), ( (+), '+'), ( (-), '-'), ( div, '/')] 
-- div is integer division

接下来我们处理实际的功能:

operations (x, y) = [ (x, y, do something here) | (op, name) <- ops]

Wheredo something here格式化名称和结果。由于这非常简单(提示只需将 op 应用于 x 和 y)我不会给出完整的解决方案。不过,这是一个好的开始。

于 2013-04-01T18:59:04.190 回答
1

第一个解决方案当然可以是

operations (x, y) = [ (x, y, '+', x+y), (x, y, '*', x*y) ]

只需扩展更多元组即可进行更多操作。

于 2013-04-01T19:23:13.090 回答