簡體   English   中英

Elisp:我怎么能表達else-if

[英]Elisp: how can I express else-if

在elisp中,if語句邏輯只允許我使用if case和else case。

(if (< 3 5) 
  ; if case
    (foo)
  ; else case
    (bar))

但如果我想做別的話怎么辦? 我是否需要在else案例中添加新的if語句? 它看起來有點亂。

嵌套if

由於(if test-expression then-expression else-expression)的一部分else if要將一個新的if作為else-expression嵌套:

(if test-expression1
    then-expression1
    (if test-expression2
        then-expression2
        else-expression2))

使用cond

在其他語言中, else if通常在同一級別上。 在lisps,我們有cond為此。 這與cond完全相同:

(cond (test-expression1 then-expression1)
      (test-expression2 then-expression2)
      (t else-expression2))

請注意,表達式可以就是這樣。 任何表達式通常都是這樣的(some-test-p some-variable) ,其他表達式通常也是如此。 它們很少只是被評估的單個符號,但它可以用於非常簡單的條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM