Lisp初学求助,是否存在函数,能够合并多个函数使之分别执行?

比如:

>>(foo (do1) (do2))
(do1)
(do2)

并且,能够使得下面的代码能够执行?

(if (a)
    (b)
    (foo (do1) (do2)))

其实就是想问对于参数数量有限制的函数,怎么增加函数数量?
上面的if函数,按照正常使用,只能写入3个参数,我想让第三个参数扩展一下.类似于

if a :
    b
else:
    do1
    do2

谢谢

阅读 4.1k
1 个回答

不懂autolisp,但是commonlisp有progn满足你的需求,我不知道autolisp有没有,你可以试试。

commonlisp(if (a)
    (b)
    (progn
        (do1)
        (do2)))

,如果是scheme的话可以用begin,它的作用就是无限个参数返回最后一个表达式的值。

scheme(begin 
    (do1)
    (do2))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进