Common Lisp中的NULL和NIL之间的确切区别是什么?

数学

据我了解,NIL是许多事物的象征:空列表或布尔假。到目前为止一切都很好,但是为什么有时输出中会显示NULL?

clisp> (type-of NIL)
NULL
clisp> (type-of t)
BOOLEAN
clisp> (type-of (not t))
NULL
clisp> NIL
NIL
clisp> (eq NULL NIL)
ERROR..

因此NULL也不是一个已定义的符号,"BASIC-STRING-6"也不是一个。但是我对术语NULL感到困惑,因为无论是否被否定,布尔值都应保持为布尔值。

除夕夜

您可能以为T布尔值NIL不是,这很奇怪原因是NIL有几顶帽子。这是一个空列表,它是符号NIL,它是布尔值false。因此,它有时会在不适合布尔类型值的上下文中发生,因此从类型安全性的角度来看,布尔类型不适用于它。与此类似,在Scheme中,布尔值false与空列表不同。

NULL被赋予作为typeNIL

NIL是表示Common Lisp中NULL的符号。它也是空列表的表示()#'NULL是检查变量是否为NULL(即eq NIL的函数

如果要使用NULL而不是NIL,则可以定义NULL。实际上这可能是一个可怕的主意。

(defconstant null nil)
(type-of NULL) ; ==> NULL
NULL           ; ==> NIL
(eq NULL NIL)  ; ==> T

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Docker容器中SizeRootFs和SizeRw之间的确切区别是什么?

来自分类Dev

wpf中的ToolBarPanel和ToolBarTray之间的确切区别是什么?

来自分类Dev

nodejs 中的签名 cookie 和未签名 cookie 之间的确切区别是什么?

来自分类Dev

Common Lisp:#+ nil是什么?

来自分类Dev

read()和readline()的确切区别是什么?

来自分类Dev

在C和C ++中,作为函数参数的int ** a和int a [] []之间的确切区别是什么?

来自分类Dev

Windows Azure和Windows IIS之间的确切区别是什么?

来自分类Dev

content-type:text / json和application / json之间的确切区别是什么?

来自分类Dev

适配器和代理模式之间的确切区别是什么?

来自分类Dev

“适配器”和“介体”模式之间的确切区别是什么?

来自分类Dev

拦截器和transformResponse之间的确切区别是什么?

来自分类Dev

“ ExpectedConditions.visibilityOfElementLocated”和“ ExpectedConditions.presenceOfElementLocated”之间的确切区别是什么?

来自分类Dev

线程入口和线程启动之间的确切区别是什么?

来自分类Dev

SessionLocaleResolver和FixedLocaleResolver之间的确切区别是什么

来自分类Dev

awk和grep cut之间的确切区别是什么?

来自分类Dev

$ mycol,[[mycol]]和[,mycol,with = FALSE]的地址列之间的确切区别是什么?

来自分类Dev

Linux内核发行版和版本之间的确切区别是什么?

来自分类Dev

“子shell”和“子进程”之间的确切区别是什么?

来自分类Dev

“终端”,“外壳”,“ tty”和“控制台”之间的确切区别是什么?

来自分类Dev

.login和.cshrc文件之间的确切区别是什么?

来自分类Dev

之间的确切区别是什么?。和 ?: 角度运算符

来自分类Dev

角度2:组件中私有属性和公共属性之间的确切区别是什么?

来自分类Dev

Django中的get_list_or_404和get_object_or_404之间的确切区别是什么?

来自分类Dev

均值滤波器和中值滤波器之间的确切区别是什么

来自分类Dev

Windows-1252(1/3/4)和ISO-8859-1之间的确切区别是什么?

来自分类Dev

Windows-1252(1/3/4)和ISO-8859-1之间的确切区别是什么?

来自分类Dev

三元运算符和 && 运算符之间的确切区别是什么?

来自分类Dev

Charuco 马克笔和钻石马克笔之间的确切区别是什么?

来自分类Dev

从ServiceStackController继承的MVC控制器中的以下三行之间的确切区别是什么

Related 相关文章

  1. 1

    Docker容器中SizeRootFs和SizeRw之间的确切区别是什么?

  2. 2

    wpf中的ToolBarPanel和ToolBarTray之间的确切区别是什么?

  3. 3

    nodejs 中的签名 cookie 和未签名 cookie 之间的确切区别是什么?

  4. 4

    Common Lisp:#+ nil是什么?

  5. 5

    read()和readline()的确切区别是什么?

  6. 6

    在C和C ++中,作为函数参数的int ** a和int a [] []之间的确切区别是什么?

  7. 7

    Windows Azure和Windows IIS之间的确切区别是什么?

  8. 8

    content-type:text / json和application / json之间的确切区别是什么?

  9. 9

    适配器和代理模式之间的确切区别是什么?

  10. 10

    “适配器”和“介体”模式之间的确切区别是什么?

  11. 11

    拦截器和transformResponse之间的确切区别是什么?

  12. 12

    “ ExpectedConditions.visibilityOfElementLocated”和“ ExpectedConditions.presenceOfElementLocated”之间的确切区别是什么?

  13. 13

    线程入口和线程启动之间的确切区别是什么?

  14. 14

    SessionLocaleResolver和FixedLocaleResolver之间的确切区别是什么

  15. 15

    awk和grep cut之间的确切区别是什么?

  16. 16

    $ mycol,[[mycol]]和[,mycol,with = FALSE]的地址列之间的确切区别是什么?

  17. 17

    Linux内核发行版和版本之间的确切区别是什么?

  18. 18

    “子shell”和“子进程”之间的确切区别是什么?

  19. 19

    “终端”,“外壳”,“ tty”和“控制台”之间的确切区别是什么?

  20. 20

    .login和.cshrc文件之间的确切区别是什么?

  21. 21

    之间的确切区别是什么?。和 ?: 角度运算符

  22. 22

    角度2:组件中私有属性和公共属性之间的确切区别是什么?

  23. 23

    Django中的get_list_or_404和get_object_or_404之间的确切区别是什么?

  24. 24

    均值滤波器和中值滤波器之间的确切区别是什么

  25. 25

    Windows-1252(1/3/4)和ISO-8859-1之间的确切区别是什么?

  26. 26

    Windows-1252(1/3/4)和ISO-8859-1之间的确切区别是什么?

  27. 27

    三元运算符和 && 运算符之间的确切区别是什么?

  28. 28

    Charuco 马克笔和钻石马克笔之间的确切区别是什么?

  29. 29

    从ServiceStackController继承的MVC控制器中的以下三行之间的确切区别是什么

热门标签

归档