我想在计划上为计划中的计数功能的变量分配一个分数。我希望函数返回一个分值的10如果计数大于或等于2的-10分如果计数小于2。这是我的代码有:为计划中的变量分配一个值
(define theScore (lambda (x)
(cond ((if = x 2) (if > x 2) 10) (else(- 10)))))
它返回一个10的一切,即使是应该返回-10作为输出的测试。我无法弄清楚为什么,虽然我确定这是明显的事情!你能帮我指出我错过的东西吗?提前致谢。
我想在计划上为计划中的计数功能的变量分配一个分数。我希望函数返回一个分值的10如果计数大于或等于2的-10分如果计数小于2。这是我的代码有:为计划中的变量分配一个值
(define theScore (lambda (x)
(cond ((if = x 2) (if > x 2) 10) (else(- 10)))))
它返回一个10的一切,即使是应该返回-10作为输出的测试。我无法弄清楚为什么,虽然我确定这是明显的事情!你能帮我指出我错过的东西吗?提前致谢。
最有经验的计划程序员会写出像这样的功能:
(define (the-score x)
(if (< x 2) -10 10))
这里有一个版本,下面你所使用的样式:方案
(define theScore
(lambda (x)
(cond ((>= x 2) 10)
(else -1))))
标识符传统上写有破折号分开的话,不要使用驼峰。
下面是如何执行计划的比较:
(if <condition>
<something>
<else>)
所以基本上它的语法的问题,仅此而已。换句话说,这是你的程序应该是什么样子:
(define theScore
(lambda (x)
(if (>= x 2)
10
-10)))
注意,如果比较值等于或大于2
更大由>=
运营商的单一应用程序执行的,就像这样:(>= x 2)
。现在,如果你想使用cond
(你混淆这部分),这里是它是如何做:
(define theScore
(lambda (x)
(cond ((>= x 2) 10)
(else -10))))
非常感谢! – lameduck 2013-04-26 21:17:51
不客气,永远是我的荣幸! – 2013-04-26 21:58:16
谢谢,这太棒了! – lameduck 2013-04-26 21:17:09
不客气。如果你想看到更多这样的东西,你可以在http://programmingpraxis.com上享受我的博客。 – user448810 2013-04-26 23:01:18