2009-05-26 41 views
58

Trong elisp, có một 'nếu' trường hợp mà tôi muốn thực hiện nhiều điều khác nhau:Làm thế nào bạn có thể viết nhiều câu trong câu lệnh 'if' dễ hiểu?

(if condition 
    (do-something) 
    (do-something-else) 
    ...) 

Tuy nhiên, (làm-gì-khác) được thực hiện trong khác-trường hợp duy nhất. Làm thế nào bạn có thể chỉ định một khối lệnh để thực thi? Ví dụ:

(if condition 
    (begin 
     (do-something) 
     (do-something-else) 
     ...)) 

Trả lời

71

Sử dụng progn:

(if condition 
    (progn 
     (do-something) 
     (do-something-else))) 
42

Nếu không có else cần thiết, nó có thể là dễ đọc hơn để sử dụng:

(when condition 
    (do-something) 
    (do-something-else)) 

Và, có điều ngược lại

(unless (not condition) 
    (do-something) 
    (do-something-else)) 

Hãy xem Emacs Lisp manual for conditionals.

+2

FWIW, tôi thường theo quy ước được đề xuất trong * Ngôn ngữ chung Lisp * sử dụng 'khi' và' trừ khi giá trị trả về không quan trọng (nghĩa là chúng chỉ được sử dụng cho các hiệu ứng phụ). Tôi thường sử dụng 'và' và' hoặc' khi giá trị trả về là quan trọng. Tôi thường sử dụng 'if' và' cond' khi có nhiều nhánh (có hay không giá trị trả về là quan trọng). – Drew

Các vấn đề liên quan