generated at
if文




else if or elsif or elif
else if
elsif
「else if」と発音が同じかつ短い
Rubyの場合、ブロック構造の文法上「else if」は採用不可
Perl, Ruby, Eiffel
elif
Python, Shell


三項演算子
JSでは式で条件分岐をするときの書き方以下のような感じ
三項演算子を使う
hoge = b ? t : f
elseのときも書ける。
更に条件分岐を追加することもできる
ただし t f の部分に値を返す文などは書けない
hoge = b ? { const p = 42; return 42} : 100 みたいなのは無理
&& 演算子を使う
elseのときの処理が必要ない場合はこれを使える
b && hogeFunc()
b false の場合は、何も実行されない


構想
そもそもif文いらなくない?という気がしているmrsekut
Pattern Matchingでなんとかしたい
↓これをパターンマッチというのか?mrsekut
これを使えばifを実装しなくて済みそう
maru
l = match isHoge True => "hogehoge" False => "None"
しかし、Boolのときに毎度True,Falseと書かないといけないのも面倒だな
これを実現するためには match T の`Tの部分を型を決める必要がある
二値以上の型を取る場合と、二値以上の値を取る場合とありそう
maru
l = match num 1 => "1" 2..9 => "2~9" _ => "other"
参考になりそうなもの
Haskellのcase..of
Rustのmatch
Elixirの〜〜
Nimのcase..of
でも、jsの三項演算子の様な一行で書ける記法は欲しい
少なくとも値を返す式にしたい
ex. Rust


Haskellのifはcaseを用いて定義されている
hs
-- if x then y else z case x of True -> y False -> z

if文の何が気に入らないのか
無駄に冗長な気がする
もう少し深掘りしてmrsekutmrsekutmrsekut