首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于函数alexandria:length=的澄清

问关于函数alexandria:length=的澄清
EN

Stack Overflow用户
提问于 2020-11-27 18:48:47
回答 1查看 27关注 0票数 0

亚历山大手册包含一个用于测试序列长度的布尔函数:

功能: length=和rest序列 以任意顺序接受任意数量的序列或整数。返回真当且仅当所有序列和整数的长度相等。提示:如果第一个参数是字面整数,则有一个编译器宏扩展为更高效的代码。

第一句谈到“整数”(复数)。这仅仅是为了测试几个计算的整数是否相同,同时测试序列长度吗?还是有更深层次的意义?

第三句提供了优化。这是否意味着当到达文字索引时,对列表的计数会停止,如果lst很长,那么它可能比(= ( lst) 3)更有效吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 19:08:11

第一句谈到“整数”(复数)。这仅仅是为了测试几个计算的整数是否相同,同时测试序列长度吗?还是有更深层次的意义?

没有更深层次的意义。这可能只是为了对称。基本上,只有整数参数的(length= ...)只是一个速度较慢的=。但是这方面的主要用例是(length= 3 (some-list)),即测试某些序列是否具有特定的长度(“(some-list)产生的序列值是否长度为3?")。

第三句提供了优化。这是否意味着当到达文字索引时,对列表的计数将停止,如果(= (length lst) 3)很长,那么它可能比lst更高效吗?

是的,实际上是这样的;编译器宏扩展为对sequence-of-length-p的调用,该调用(对于列表)做类似于此的事情(通过nthcdr)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65042411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档