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


比如:


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

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


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

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


 if a :
    b
else:
    do1
    do2

谢谢

autolisp lisp

marsh元素 10 years ago

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


 commonlisp


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

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


 scheme


 (begin 
    (do1)
    (do2))

志倉千代丸 answered 10 years ago

Your Answer