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)

版权声明:本文为Xudinghui原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。