在Scheme中,数字和对象之间的区别是什么?

时间:2016-11-18 19:22:59

标签: lisp

如果在Scheme I中有类似的内容:

one = 1

和数字1.这两者之间的差异是什么,符号1和数字1?数字1也不是一个符号(数字1)?那些像Pi或e这样的东西呢?它们是数字还是符号?

1 个答案:

答案 0 :(得分:1)

我认为你的意思是(define one 1)而不是one = 1

在此上下文中,one是标识符(而不是符号)。标识符引用一个值,在这种情况下,one标识符的值为1.(顺便说一下,数字不是符号或标识符。)但并非总是如此。请考虑以下事项:

(define one 1)
(define (my-function one)
  (display one))

(my-function 42)

虽然my-function包含表达式(display one),但表达式(my-function 42)实际上会打印42,因为此处one指的是my-function&#39}参数,而不是顶级one

pie也是标识符,可以绑定到任何值。当然,您可以使用以下定义为其提供您期望的值:

(define pi (acos -1))
(define e (exp 1))