有和没有括号的程序之间的差异?

时间:2014-12-31 07:27:16

标签: scheme lisp

(define (procedere1) (lambda () 2))
(define procedure2 (lambda () 2))

他们都可以编译。但我对上述两个程序之间的区别感到困惑。

2 个答案:

答案 0 :(得分:4)

第一个是返回过程的过程。第二个是返回数字2的过程。

特别是,第一个等同于以下内容:

(define procedure1
  (lambda ()
    (lambda () 2)))

答案 1 :(得分:2)

一般

(define (name arg1 arg2 arg3 ...)
  body)

的简写
(define name
  (lambda (arg1 arg2 arg3 ...) 
    body))