我是 Common Lisp 的新手,刚开始学习这门语言。我的问题是:我见过几个函数以不同的方式使用谓词语法。例如(刚刚查了一下),有streamp和pathnamep,但也有input-stream-p和output-stream-p。为什么不是所有函数都标准化为使用 *p 或 *-p?这可能只是历史文物吗?
最佳答案
规则是 单字谓词名称仅以 P
结尾,而 多字谓词名称以 -P
结尾。前者的原因主要是历史性的;后者的原因是像 input-streamp
这样的名字会错误地暗示所问的问题是“这个输入是一个流吗?”或类似的东西。