Как вы можете поместить объекты структуры в список? - PullRequest
0 голосов
/ 15 октября 2018
#lang Scheme

(define-struct storeItem (id des cost))

(define redApple (make-storeItem 0 "red delicious apple" 1.99))
(define chickenLeg (make-storeItem 1 "boned chicken" 2.99))
(define porkLoin (make-storeItem 2 "processed pork" 4.99))
(define milkD (make-storeItem 3 "vitamin d milk" 3.99))
(define baguetteBread (make-storeItem 4 "french bread" 0.99))
(define orangeJuice (make-storeItem 5 "fruit juice drink)" 1.49))
(define beanCan (make-storeItem 6 "beans in a can" 2.49))

(define masterList '(redApple chickenLeg porkLoin milkD baguetteBread 
   orangeJuice beanCan))    

Я пытаюсь получить список объектов из моей структуры, и я не уверен в правильном синтаксисе.Ниже то, что я устал

(storeItem-des (car masterList)

Я ожидал "red delicious apple"

Но я получаю

storeItem-des: contract violation
expected: storeItem?
given: redApple

Кажется, что он возвращается redApple, который кажетсяправильный.Куда я иду не так?

1 Ответ

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

Вы создаете список символов, а не storeItem с.

'(x y z) эквивалентно (list 'x 'y 'z), а не (list x y z).Поэтому, если вы хотите создать список, содержащий значения переменных x, y и z, вам необходимо использовать последнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...