gpt4 book ai didi

common-lisp - 使用宏作为函数

转载 作者:行者123 更新时间:2023-12-02 21:53:04 25 4
gpt4 key购买 nike

我是 Common Lisp 新手,所以这让我有点困惑,Google 让我失望了。

我有一个函数sizzle定义如下:

(defun sizzle (f &rest r) ...blah blah...)

现在我只需要检查所有可选参数是否都非零,所以我自然就这么做了

(apply #'and r)

...然后结果是and不是一个函数,它是一个宏(我还没有抽出时间)。

所以,我的问题是,有没有办法使用宏作为函数(与上面类似),或者我应该创建自己的函数来检查给定列表中的所有值是否都非零?还是还有另一种我没有想到的方法?

最佳答案

你不能将宏用作函数(这就是为什么最好让某些东西发挥作用,这就是为什么使用编译器宏而不是常规宏来进行优化)。

我会使用 (every #'identity r)(notany #'null r) 而不是编写自己的 AND 函数你的例子。

关于common-lisp - 使用宏作为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14852472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com