为什么谓词命名约定在不同函数之间有所不同?

时间:2013-03-26 15:27:24

标签: lisp naming-conventions common-lisp

我是一名Common Lisp新手,他开始学习这门语言。我的问题是:我已经看到几个函数以不同的方式使用谓词语法。例如(只是查看),有streamp和pathnamep,但也有input-stream-p和output-stream-p。为什么并非所有功能都标准化使用* p或* -p?这可能只是一件历史文物吗?

1 个答案:

答案 0 :(得分:11)

规则是单字谓词名称仅以P 结尾,而多字谓词名称以-P 结尾。前者的原因主要是历史性的;后者的原因是像input-streamp这样的名称会错误地暗示被问到的问题是“这个输入是一个流吗?”或类似的东西。