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