R6RS:翻訳:R6RS:11.4.3 Conditionals

R6RS:翻訳:R6RS:11.4.3 Conditionals

11.4.3 条件式

[syntax] (if <test> <consequent> <alternate>)

[syntax] (if <test> <consequent>)

構文: <test>、 <consequent>、 <alternate> は式でなければならない。

意味論: if 式は次のように評価される。まず、 <test> が評価される。これが真値(R6RS:翻訳:R6RS:5.7 Boolean values)であった場合には、 <consequent> が評価され、その値が返る。そうでなければ <alternate> が評価され、その値が返る。 <test> が #f を返し、 <alternate> が指定されていない場合、この式の評価結果は未規定である。

(if (> 3 2) ’yes ’no)                   ⇒  yes
(if (> 2 3) ’yes ’no)                   ⇒  no
(if (> 3 2)
    (- 3 2)
    (+ 3 2))                            ⇒  1
(if #f #f)                            ⇒ unspecified

if 式自体が末尾文脈にある場合、 <consequent> 式と <alternate> 式も末尾文脈にある。 R6RS:翻訳:R6RS:11.20 Tail calls and tail contexts 参照。


Last modified : 2008/04/02 00:28:23 UTC