【发布时间】:2020-05-11 12:52:36
【问题描述】:
我开始学习 Scheme 并偶然发现了这个奇怪的东西: 给定以下过程:
(define (test x y) (if (= x 0) 0 y ))
当我创建一个条件时,它会在我添加括号时“按预期”评估:(test 0 1) 给出 0。但是当我不添加括号(并且我使用相同的输入)时,它会评估为错误条件:test 0 1 给出 1。
这是为什么?
【问题讨论】:
-
这是 Scheme 语法。您必须使用括号来进行函数调用。
-
我明白了,但在 Scheme 中是什么导致它评估为假?为什么它不只是给出一个词法错误?
-
它没有评估为假。您正在查看您输入的内容,即
1。 -
你根本没有调用这个函数。
-
没错。这是一个读取-评估-打印循环。它读取您的输入,对其进行评估并打印结果。数字只是对自己进行评估。