define: ожидалось только одно выражение для тела функции, но найдено 3 дополнительные части - PullRequest
0 голосов
/ 31 октября 2018

Вот мой код:

(define (distance-between-circle-centers x1 y1 x2 y2) (sqrt(+ (sqr(- x1 x2)) 
(sqr(- y1 y2)))))
(distance-between-circle-centers 1 1 2 2)
(define (cirles-position x1 y1 r1 x2 y2 r2)
  cond
  [(>(distance-between-circle-centers x1 y1 x2 y2) (+ r1 r2)) "external"]
  [(<(distance-between-circle-centers x1 y1 x2 y2) (abs(- r1 r2))) 
 "interior" ]
  [else "intersect"])
(circles-position 1 1 1 2 2 2)

Почему отображается ошибка define: expected only one expression for the function body, but found 3 extra parts?

1 Ответ

0 голосов
/ 31 октября 2018

Из-за опечаток и пропущенных скобок в предложении cond. Используйте DrRacket для написания Racket.

Исправленная версия:

(define (distance-between-circle-centers x1 y1 x2 y2)
  (sqrt (+ (sqr (- x1 x2)) 
           (sqr (- y1 y2)))))
(distance-between-circle-centers 1 1 2 2)

(define (circles-position x1 y1 r1 x2 y2 r2)
  (cond
    [(> (distance-between-circle-centers x1 y1 x2 y2) (+ r1 r2)) "external"]
    [(< (distance-between-circle-centers x1 y1 x2 y2) (abs (- r1 r2))) "interior" ]
    [else "intersect"]))

(circles-position 1 1 1 2 2 2)
...