Учитывая список определение:Синтаксические по списку рэкета
(define list
'((a1 20 (1 a2) (3 a3))
(a2 10 (2 a4))
(a3 10 (1 a5) (2 a6) (3 a7))
(a4 21)
(a5 12)
(a6 6 (1 a4) (2 a5))
))
Как вы пишете функцию (суб «a1) будет возвращать список (а2 а3). я могу найти список ((1 a2) (3 a3)) со следующим кодом:
(define (sub val)
(cdr(cdr(cond ((assq val list))
(else 0)))))
Но что мне делать после этого, чтобы получить только те элементы, которые я хочу? Я пробовал сделать рекурсию, но это просто по кругу. Любой совет будет принят во внимание.
Второй вопрос: функция для получения списка только «а» с числовым значением, меньшим или равным указанному входу, т.е. (тест 10) вернется (a2 a3 a6) Я могу проверить один список, но я Я застрял в том, как пройти через весь список списка и добавить значения.
спасибо. Другой вопрос, если вы можете помочь. Функция, чтобы получить список только «a» с числовым значением, меньшим или равным заданному входу, т.е. (тест 10), вернется (a2 a3 a6), я могу проверять один список за раз, но я застрял в том, как перейдите ко всему списку списка и добавьте значения. – codegirl
Я не совсем понимаю ваш вопрос. Почему «a6» или «a3» подходят там, но «a7» нет? – fanton