7.2 条件分岐のためのブロック
'?
'を使うことで条件分岐をする複文ブロックを作ることができる。
a ∧ b
は短絡しない(∧
は関数なのでa
, b
とも常に評価される)が、?
を使った複文ブロックは短絡可能である。
{•Show "A" ⋄ 0}∧{•Show "B" ⋄ 0} # 評価順序にも注目
"B"
"A"
0
{{•Show "A" ⋄ 0} ? {•Show "B" ⋄ 0} ? 1 ; 0}
"A"
0
{{•Show "A" ⋄ 1} ? {•Show "B" ⋄ 1} ? 1 ; 0}
"A"
"B"
1