我需要能够像这样操作变量。
首先找到变量并检查它是什么(在本例中是运算符*/+等),然后反转它。例如,~(5+9)的值为-14,~(3-5)的值为2。
我该怎么做呢?
发布于 2016-03-01 02:50:17
1> F=fun({A,'+',B}) -> B+A; ({A,'-',B}) -> B-A; ({A,'/',B}) -> B/A end.
#Fun<erl_eval.6.54118792>
2> F({5,'+',9}).
14
3> F({3,'-',5}).
2
发布于 2016-03-01 04:57:49
颠倒运算符是什么意思?这听起来像是你想做相反的事情-所以加法变成减法,反之亦然,乘法变成除法,反之亦然。但是您的示例表明您想要执行该操作,然后否定答案。例如,如果您只是“反转运算符”,那么5+9将变成5-9=-4。同样,为了得到5+9=-14,你必须否定运算5+9的答案。在我们继续之前,你能澄清一下吗?
发布于 2017-07-23 14:19:34
custom_action(A, Operator, B) ->
operate({A, Operator, B}) * -1.
operate({A, "+", B}) -> A + B;
operate({A, "-", B}) -> A - B;
operate({A, "*", B}) -> A * B;
operate({A, "/", B}) -> A / B.
现在,您可以使用像custom_action(5, "+", 9)
这样的custom_action/3
来获取-14,使用custom_action(3, "-", 5)
来获取2。
https://stackoverflow.com/questions/35706875
复制相似问题