В СХЕМЕСортировка списка подсписков в схеме
Я пытаюсь написать часть кода для сортировки списка подсписков, используя разницу между элементами каждого подсписка. Что я имею в виду:
т.е.
список подсписков:. '(' (Ted 10 4) '(Barbie 10 5)' (автомобиль 10 7) «(шар 10 6))
и я хочу, чтобы отсортировать список на основе разницы между 2-й и 3-й элемент каждого списка подсписок таким образом отсортированный список должен выглядеть в порядке возрастания (низшего к высшему):
«(» (автомобиль 10 7) '(шарик 10 6)' (барби 10 5) '(тедди 10 4))
Я создал аксессоры для подписок:
(define (access-name x) (car x))
(define (access-aquprice x)(cadr x))
(define (access-saleprice x)(caddr x))
сортировка взволнована, пожалуйста, помогите! :)
До сих пор все у меня есть:
(define (sortlist curr)
(if (null? curr)
(curr)
(if (>
(diff (access-aquprice (car toylist)) (access-saleprice (car toylist)))
(diff (access-aquprice (cadr toylist)) (access-saleprice (cadr toylist))))
("hello")
"goodbye")))
Можете ли вы использовать встроенную процедуру 'sort' или вы должны реализовать ее с нуля? –
Мне нужно сделать это с нуля – user3259073
И мне нужно создать новый отсортированный список. до сих пор все, что у меня есть: '(define (sortlist curr) (если (null? curr) (curr) (если (> (diff (доступ-aquprice (машина toylist)) (доступ-продажа цена (машина toylist))) (дифференциал (доступ-aquprice (CADR toylist)) (доступа SalePrice (CADR toylist)))) ("привет") "до свидания") ) ) ' – user3259073