我需要能够像这样操纵变量。
首先找到变量并检查它是什么(在这种情况下是运算符* / +等),然后反转它。例如,〜(5 + 9)的值是-14和 〜(3-5)的值是2。
我该怎么做?
答案 0 :(得分:0)
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
答案 1 :(得分:0)
扭转操作员是什么意思?听起来你会想做相反的事情 - 所以加法变成减法,反之亦然,乘法变成除法,反之亦然。但是您的示例表明您要执行操作然后否定答案。例如,如果您只是“反转”运算符,&#34;然后5 + 9将变为5-9 = -4。再次,对于你得到5 + 9 = -14你将不得不否定操作5 + 9的答案。你能在我们继续之前澄清吗?
答案 2 :(得分:0)
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/3
使用custom_action(5, "+", 9)
获取-14,使用custom_action(3, "-", 5)
获得2。