我具有计算面积所需的所有功能,但是在三角函数中,我使用距离函数分配a,b和c以确定其边的长度。我要实现的下一步是用a,b和c调用s函数,但是每当我尝试执行时,它都会说变量是未绑定的。当列出a,b和c时,将显示正确的值。我尝试过:
(let ([side (s a b c)]) (list side))
,但是看来变量实际上并不能绑定并传递给另一个函数。我该如何解决?
(define distance
(lambda (x1 x2 y1 y2)
(sqrt (+ (*(- x1 x2) (- x1 x2)) (* (- y1 y2) (- y1 y2))))))
(define s
(lambda (a b c)
(/ ( + (+ a b) c) 2)))
(define T
(lambda (s a b c)
(* s (* (- s a) (* (- s b) (- s c))))))
(define (area T)
(cond ((> T 0) (sqrt T))
((< T 0) -1)))
(define triangle
(lambda (x1 y1 x2 y2 x3 y3)
(let ([a (distance x1 x2 y1 y2)]
[b (distance x2 x3 y2 y3)]
[c (distance x3 x1 y3 y1)])
(list a b c))))
(triangle 4 3 3 9 8 2 )