gpt4 book ai didi

types - 在 Common Lisp 中使用 `satisfies` 和 `and`

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:03 24 4
gpt4 key购买 nike

我读入了Google Common Lisp Style Guide (请参阅最后一节)Common Lisp 标准中将 作为类型说明符存在错误。也就是说,它不会“短路”,或者等效地无法保证评估顺序,这与 example 中的假设相反。 :

(and integer (satisfies evenp))

然而,看着section 4.4 CLtL2 的声明

When typep processes an and type specifier, it always tests each of the component types in order from left to right and stops processing as soon as one component of the intersection has been found to which the object in question does not belong.

并且该节进一步说明,之所以如此,正是为了让满足被另一种类型过滤,避免错误。

我可以安全地假设这是 Google 风格指南中的一个错误,还是自 CLtL2 以来行为发生了变化?

最佳答案

几年前我遇到过同样的问题。

我在 ANSI CL 中找不到任何支持顺序或过滤的内容。但也没有讨论更改的问题。您提到的示例采用 CLtL2 解释。

因此,假设编译器可能会重新排序类型并且这已从 CLtL2 改变是有意义的。

关于types - 在 Common Lisp 中使用 `satisfies` 和 `and`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768959/

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