Haskell,带有元组执行BIDMAS和打印结果

时间:2013-04-01 18:35:45

标签: haskell tuples

嘿伙计们我被困住了,我不知道该怎么办:

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

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

我的想法是这样的

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

但是我不确定如何协助乘法加法等并计算操作的结果......有什么建议让我走上正轨吗?

由于

2 个答案:

答案 0 :(得分:4)

所以要做的第一件事就是列出操作及其名称

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

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

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

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

答案 1 :(得分:1)

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

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

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