The*_*tus 6 scheme types racket
简单地说:我的问题是什么是Scheme中定义表达式的类型?
举个例子:
(define x 5)
Run Code Online (Sandbox Code Playgroud)
要么
(define x (lambda (n) (* n n)))
Run Code Online (Sandbox Code Playgroud)
这对我来说有点混乱.有人可以帮忙吗?
Ósc*_*pez 11
在Racket中define
是一个特殊的形式而不是表达式,所以它本身没有值,如果你尝试执行这样的事情,你会得到一个错误:
(display (define x 42))
=> define: not allowed in an expression context in: (define x 42)
Run Code Online (Sandbox Code Playgroud)
如果它有一个值,它就是类似的东西void
,但这将取决于解释器的特定实现细节(我相信我看到一个解释器#t
在define
完成后返回)
#<void>
大多数表单和过程都会返回常量,这些表单和过程具有副作用且没有用处
该规范并没有深究这一点,无论是-加强它的实现相关的声明.
归档时间: |
|
查看次数: |
1917 次 |
最近记录: |