布尔值中的p字代表什么?

时间:2013-06-07 12:42:37

标签: c naming-conventions tcl

我正在研究一些C和TCL库,它们在变量名的末尾使用addin a p的约定来引用布尔值,即

set is_registered_p 0
# do stuff
if { $is_registered_p } { 
    #do stuff
}

我在多个文件和多个来源中发现了这个,所以我认为它必须是某种约定。

4 个答案:

答案 0 :(得分:6)

最可能的是它代表“ P redicate”(即,可以评估产生布尔值的条件)但它不是一个约定这在大多数Tcl程序员中尤为常见。

如果某人使用该约定,您可能希望看到它包含变量和命令的名称;在前一种情况下,他们会持有布尔值,在后一种情况下,他们会在执行时返回布尔值。

答案 1 :(得分:5)

我的猜测是predicate

还有a convention in LISP使用尾随P作为谓词函数。

答案 2 :(得分:5)

在名称的末尾添加p似乎是谓词的常见LISP naming convention,与您显示的用法一致。

答案 3 :(得分:4)

谓词是一个函数,它测试涉及其参数的某些条件,如果条件为假则返回nil;如果条件为真,则返回一些非零值。可以将谓词视为生成布尔值,其中nil代表虚假,其他任何东西都代表真实。

按照惯例,谓词的名称通常以字母p(代表“谓词”)结尾。