Erlang 实现三目运算

Erlang 实现三目运算

众所周知,Erlang 没有三目运算符的,不过可以通过以下方式定义

-define(IIF(Cond,E1,E2), (case (Cond) of true -> (case is_function(E1) of true->apply(E1, []); false->E1 end); false -> (case is_function(E2) of true->apply(E2, []); false->E2 end) end)).

然后就可以这样使用了:

A = 10,
B = ?IIF(A > X, fun()->
		A + 20
	end, A * X)

你可能感兴趣的:(Erlang,erlang,三目运算)