Scheme::R5RS。尝试制作绝对值程序
Scheme::R5RS. Trying to make the absolute value procedure
我正在尝试使绝对值过程和代码出错。我不知道为什么:/
(define (abs x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x))))
错误信息:
define-values: assignment disallowed;
cannot change constant
constant: abs
abs
过程已经是您正在使用的语言的一部分,您不能创建另一个具有相同名称的过程。简单地重命名它(顺便说一句,实现可以简化一点):
(define (myabs x)
(cond ((>= x 0) x)
(else (- x))))
这是您问题的简单解决方案。
(define (abs x)
(if (< x 0) (* x -1) (* x 1)))
这是 DrRacket 中的结果:
> (abs -4)
4
> (abs 3)
3
我正在尝试使绝对值过程和代码出错。我不知道为什么:/
(define (abs x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x))))
错误信息:
define-values: assignment disallowed;
cannot change constant
constant: abs
abs
过程已经是您正在使用的语言的一部分,您不能创建另一个具有相同名称的过程。简单地重命名它(顺便说一句,实现可以简化一点):
(define (myabs x)
(cond ((>= x 0) x)
(else (- x))))
这是您问题的简单解决方案。
(define (abs x)
(if (< x 0) (* x -1) (* x 1)))
这是 DrRacket 中的结果:
> (abs -4)
4
> (abs 3)
3