Haskell,使用元组执行BIDMAS并打印结果



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

对于元组(2,4)必须执行所有操作并输出结果,例如

(2, 4,‘+’,6),(2,4,‘*’,8)

我的想法是这样的

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

然而,我不确定如何通过乘法和加法等并计算操作的结果…有什么建议可以引导我走上正轨吗?

谢谢

首先要做的是创建一个操作列表和它们的名称

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

接下来我们处理实际的函数:

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

其中do something here格式化名称和结果。因为这是相当直接的(提示只需对x和y应用op),我不会给出完整的解决方案。这是一个良好的开端。

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

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

最新更新