0
我正在尝试使用Scheme编程点距离公式。除非我遇到错误,否则我非常接近。编程点距公式时的方案错误 - 尝试应用非过程
确切的错误是:
Traceback (most recent call last):
File "In [54]", line 5, col 11, in 'application'
File "In [54]", line 5, col 11
RunTimeError: attempt to apply non-procedure '4'
这是我的代码:
; code for the distance procedure
(define (distance p1 p2) (sqrt (+ (* (- (car(p2)) (car(p1))) (- (car(p2)) (car(p1)))) (* (- (car(cdr(p2))) (car(cdr(p1)))) (- (car(cdr(p2))) (car(cdr(p1))))))))
(distance (4 5) (3 2))
作为参考,点距离计算公式为:
√((X2 - X1)^ 2 +(y2 - y1)^ 2)
按照计划语法一致。一个函数的一般结构是'(function arg1 arg2 ...)',所以你可以使用'(car p1)'而不是'(car(p1))'等等。 – assefamaru
'(4 5) '尝试将参数'5'传递给过程'4'。查看Scheme语法的基础知识。 – molbdnilo