Lisp中的复合条件

时间:2009-10-14 01:06:52

标签: lisp conditional

我是lisp的新手,如果条件返回true,我只想尝试调用两个函数。

(cond 
  ((equals (first expression) "+")
   (function1 parameter)
   (function2 parameter)))

在上面的代码中,我只想调用function1和function2。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

Common Lisp

  • EQUALS不存在,EQUAL

  • COND已经做了你想要的事情

COND允许在测试后进行多次调用:

(cond ((equal (first expression) "+")
       (do-something ...)
       (do-something-more ...)))

答案 1 :(得分:-1)

是的,这样的预测:

(cond 
  ((equals (first expression) "+")
   (progn
     (function1 paramter)
     (function2 parameter))))

cond使用一个表达式来评估是否为true。在这个用法progn(及其参数)是一个表达式。 progn,随后取n个表达式并对其进行评估。