我正试着拿两双(a。b) '(c .d)并将它们输入到方程式中。
(define dist
(lambda (pr)
(sqrt (+ (expt (- (car pr) (car pr) 2)(expt (- (cdr pr) (cdr pr) 2)))我尝试了这种方法和其他一些方法,但我只是得到了错误。
我的实际等式似乎适用于数字,但我不确定我应该如何输入两对,或者我甚至不确定我是否应该使用我拥有的等式。我担心我认为这一切都是错误的,我的书中没有提到如何处理两对,我的老师也不会回答。我很困惑,任何提示或解释都会很棒。
编辑:我应该提到,为了测试我的代码,我用数字代替了成对的字母,例如:
(dist '(2 . 5) '(3 . 1)) 我试图让它变得通用,因为任何数字都必须能够与代码一起工作。很抱歉给你造成了混乱。
发布于 2015-04-28 14:07:13
您已经展示了一个接受两个参数的函数dist:
(dist '(2 . 5) '(3 . 1))这样如何:
(define dist
(lambda (arg1 arg2)
(let ((x1 (car arg1))
(y1 (cdr arg1))
(x2 (car arg2))
(y2 (cdr arg2)))
(sqrt (+ (expt (- x2 x1) 2)
(expt (- y2 y1) 2))))))https://stackoverflow.com/questions/29885311
复制相似问题