条件分岐処理関連のユーティリティ関数を提供するモジュール.
Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.
apply_if/3 | Condition がtrue の場合はThenFun が、false の場合はElseFun が実行される. |
apply_unless/2 | Condition がfalse の場合はThenFun が実行される. |
apply_when/2 | Condition がtrue の場合はThenFun が実行される. |
conditional/3 | 三項演算子と同様の機能を提供する。Conditionがtrueなら2つ目の値が、falseなら3つ目の値が返る. |
while/2 | Acc0 がFun の定義により処理してAcc1 を返す。. |
apply_if(Condition::boolean(), ThenFun, ElseFun) -> Result
ThenFun = fun(() -> Result)
ElseFun = fun(() -> Result)
Result = term()
Condition
がtrue
の場合はThenFun
が、false
の場合はElseFun
が実行される
apply_unless(Condition::boolean(), ThenFun) -> ok
ThenFun = fun(() -> any())
Condition
がfalse
の場合はThenFun
が実行される
返り値は常にok
apply_when(Condition::boolean(), ThenFun) -> ok
ThenFun = fun(() -> any())
Condition
がtrue
の場合はThenFun
が実行される
返り値は常にok
conditional(Condition::boolean(), TValue::any(), FValue::any()) -> any()
三項演算子と同様の機能を提供する。Conditionがtrueなら2つ目の値が、falseなら3つ目の値が返る
while(Fun, Acc0) -> Acc1
Fun = fun((AccIn) -> {Continue::boolean(), AccOut})
Acc0 = AccIn
Acc1 = AccOut
AccIn = term()
AccOut = term()
Acc0
がFun
の定義により処理してAcc1
を返す。
Fun
内の処理の結果が{true, AccOut}
になると、AccOut
がFun
の引数としてもう一度処理される。
結果が{false, AccOut}
になると、AccOut
を返す。
> while(fun(X) when X >= 5 -> {false, X}; (X) -> {true, X + 1} end, 1).
5
> while(fun(X) when X < 2 -> {false, X}; (X) -> {true, X - 1} end, 10).
1