(define (print-p x1 y1 x2 y2)
(define (a x1 y1) (cons x1 y1))
(define (b x2 y2) (cons x2 y2))
(define (AB a b) (cons a b))
(print-point (midpoint-segment AB)))
(define (midpoint-segment segment)
(make-point (average (x-point (start-point segment))
(x-point (end-point segment)))
(average (y-point (start-point segment))
(y-point (end-point segment)))))
(print-p 0 0 1 1)
mcar: contract violation
expected: mpair?
given: #<procedure:.../Documents/3.rkt:50:2>
но пашет при таком вызове
(print-point (midpoint-segment
(make-segment
(make-point 0 0)
(make-point 1 1)))
Я так понимаю он ругается что AB это мол процедура, но эта процедура возвращающая пару , что я делаю не так?