У меня есть этот список
(define masterList(list redApple chickenLeg porkLoin milkD baguetteBread orangeJuice beanCan))
Я пытаюсь создать функцию под названием lookup, которая будет принимать целое число и возвращать элемент из списка, который соответствует этому целому числу.Список содержит элементы из структуры в этом формате
(define-struct storeItem (id des cost))
Поэтому я передам целое число, представляющее идентификатор, и я хочу, чтобы storeItem был перенастроен.
Например -
(define redApple (make-storeItem 0 "red delicious apple" 1.99))
Если бы я искал masterList и передал ему 0, я бы ожидал, что будет возвращено redApple.
Любая помощь по синтаксису?
(define (contains masterList x)
(cond
((null? masterList) #f)
((eq? (car masterList) x) #t)
(else (contains (cdr masterList) x))))
Это то, что я пытаюсьсделать работу.
Возвращает истину / ложь правильно, исходя из того, что я передаю.
(содержит materList redApple) возвращает истину.
Как я могу изменить это, чтобы вернуть redAppleесли введен 0?
;; These are the constructors to make the elements in our structure
(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)
;; Creating a list that we will use as our master list which contains elements from our structure
(define masterList(list redApple chickenLeg porkLoin milkD baguetteBread orangeJuice beanCan))