Я пытаюсь изучить схему (drracket) самостоятельно, и у меня возникла проблема.Схема структуры с другой структурой
Я пытаюсь работать с различными формами, такими как круги, квадраты и прямоугольники. Задача заключается в следующем:.
«Определить типы„круг“,„квадрат“и„прямоугольник“и определить основную типа„форма“ мне нужно-структуру формы для следующей части задания где Я должен определить функцию «область из формы», который получает «форму» databundle и который, как предполагается, представляют область любой заданной формы
Вот то, что я до сих пор:.
(define-struct square (nw lenght))
(define-struct circle (center radius))
(define-struct rectangle (nw width height))
(define-struct shape (...))
(define (area-of-shape shapeA)
(cond
[(square? (shapeA)) (* (square-lenght shapeA) (square-lenght shapeA))]
[(circle? (shapeA)) (* 3.14 (* (circle-radius shapeA) (circle-radius shapeA)))]
[(rectangle? (shapeA)) (* (rectangle-width shapeA) (rectangle-height shapeA))]))
Как определить структуру shape
? Я пробовал что-то вроде
(define-struct shape (circle square rectangle))
Но это не имеет никакого смысла, поскольку для структуры понадобится все 3 формы.
Любая помощь будет оценена по достоинству.
что вы хотите, что структуру? Если я правильно понимаю. Вы можете передать любую переменную, которую вы определяете как квадратную или прямоугольную функцию. Кроме того, у вас, кажется, есть дополнительный набор parens вокруг вашего аргумента' (shapeA) '. Это должно вызвать ошибку интерпретатора. – Rptx
В основном я хочу, чтобы область формы работала только (!) С фигурами. Не с каким-либо другим номером или чем-то еще. Поэтому я в основном хочу дать «фигуру» в функции, а «форма» должна быть определена как квадрат, круг или прямоугольник. Это упражнение, которое я нашел онлайн без решения. Функциональная область формы не закончена. Я включил его, чтобы показать, что он должен делать. Я могу добавить задачу, чтобы сделать ее более ясной. – ViktorG
Как и в качестве ориентира, структуры '#lang racket' являются основным строительным блоком среды Racket. Создание их первого класса в определении языка - одна из больших вещей, которая делает «ракетку» отличной от схемы R5RS. Масштабы этого решения отражены в их богатстве особенностей и относительно высоком уровне сложности реализации. –