我正在使用 DrRacket 学习 lisp 编程考试..
在讲座的演示中我发现了这段代码:
(define (f a b c)
(define delta)
(begin
(set! delta (- (* b b) (* 4 a c))
(if (>=? delta 0)
(writeln ”są pierwiastki”)
(writeln ”nie ma pierwiastków)))))
但它不起作用。 DrRacket 显示:
. define: bad syntax (missing expression after identifier) in: (define delta)
我不能稍后设置 delta
值吗?
问题是什么? 提前致谢
最佳答案
原来报错是因为
(define delta)
缺少一个值。相反,它应该是这样的:
(define delta 0)
还有一些其他问题:
双引号不是
"
字符,无法识别 通过 Racket 。有些家长错了。
我也不知道为什么它是define
-ing delta
,然后立即
设置!
-ing 它。
我试图修复/简化您发布的内容,并想出了 下列的。但我不太确定该功能应该是什么 做,所以我不知道示例输出是否正确。
#lang racket
(define (f a b c)
(define delta (- (* b b) (* 4 a c)))
(if (>= delta 0)
(displayln "są pierwiastki")
(displayln "nie ma pierwiastków")))
;; Example output:
(f 1 2 3)
;;-> nie ma pierwiastków
(f 1 200 3)
;;-> są pierwiastki
关于scheme - DrRacket 定义开始设置!可能应该工作但不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175268/