我是新來的lisp,如果條件返回true,我只是試圖一次調用兩個函數。Lisp中的複合條件
(cond
((equals (first expression) "+")
(function1 parameter)
(function2 parameter)))
在上面的代碼中,我只想調用function1和function2。有什麼想法嗎?
我是新來的lisp,如果條件返回true,我只是試圖一次調用兩個函數。Lisp中的複合條件
(cond
((equals (first expression) "+")
(function1 parameter)
(function2 parameter)))
在上面的代碼中,我只想調用function1和function2。有什麼想法嗎?
是,progn這個是這樣的:
(cond
((equals (first expression) "+")
(progn
(function1 paramter)
(function2 parameter))))
cond
需要一個表達式,如果真來評價。在這個使用progn
(與它的論點)是一個表達式。 progn
,隨後取n個表達式並對它們進行評估。
Common Lisp的
EQUALS不存在,平等確實
COND已經這樣做了,你想要什麼
COND允許測試經過多次電話:
(cond ((equal (first expression) "+")
(do-something ...)
(do-something-more ...)))
這就是所謂的Lisp,不LISP
但但但...'cond'在每一個提供了一種隱含'progn'分支,所以這裏使用'progn'是多餘的。好吧,無論如何,我都在談論Common Lisp。誰知道Lisp的其他方言。 :-P – 2009-10-14 02:16:22
COND表達式的主體被封裝在一個隱含的PROGN中,所以不需要明確提供一個。 – Vatine 2009-11-24 12:54:45