Reference/if

Last-modified: 2015-11-14 (土) 21:47:22

if はC言語などでいう条件演算子であり、かつ、条件文でもある。

(if 条件式
  式(または処理) ; 条件式の評価値が真であった場合
  式(または処理) ; 条件式の評価値が偽であった場合
)

式(または処理)が複数である場合、Scheme 言語などでは (begin ~) や (let ~) などでブロック化する必要があるが、SKILL言語では、記号「then」と「else」を使うことで、ブロック化することができる。

(if 条件式
   then ; 条件式の評価値が真であった場合
     式(または処理)
     式(または処理)
       :
   else ; 条件式の評価値が偽であった場合
     式(または処理)
     式(または処理)
       :
)

使用例

; age が 20 未満なら "young" を、さもなくば "old" を表示する
; if を条件演算子として使った場合:
;   C言語なら
;     puts (age<20 ? "child" : "adult") ;
;   に相当する書き方。
(println (if (lessp age 20) "child" "adult"))
; if を条件文として使った場合:
;   C言語なら
;     if (age<20) puts("child") else puts("adult") ;
;   に相当する書き方。
(if (less age 20) (println "child") (println "adult"))