条件分岐ついて質問いたします。
マニュアルを見てみますと、下記のようなことが書いてあります。
(if condition then-form else-form) ;then-formは1個だけ、残りはelse-form
(when condition a b c) ; (if condition (progn a b c) nil)と同じ
(unless condition a b c) ; (if condition nil a b c)と同じ
ifは真の時に1個目の式を、偽の時に2個目以降の式を実行する。whenは真の時に全部の式を、unlessは偽の時に全部の式を実行すると理解しました。
しかし、実施際にやってみると下記のようにマニュアルから予想される挙動と違うように思います。
elisp
1(if t "a" "b" "c") 2"a" ;予想通り 3 4(when t "a" "b" "c") 5"c" ;予想は"a" "b" "c" 6 7(unless t "a" "b" "c") 8nil ;予想通り 9 10 11(if nil "a" "b" "c") 12"c" ;予想は"b" "c" 13 14(when nil "a" "b" "c") 15nil ;予想通り 16 17(unless nil "a" "b" "c") 18"c" ;予想は"a" "b" "c"
何が間違っているのでしょうか?
Emacs 26.3
macOS 10.15.4 Catalina
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 01:53