Итерация в схеме - PullRequest
       6

Итерация в схеме

0 голосов
/ 15 сентября 2011

Допустим, у меня есть список списков в схеме, например:

 (define a-list  (list (list a b) (list c d) (list e f) (list g h) (list i j)))

Как мне определить функцию, которая будет использовать этот список, чтобы я мог использовать другую функцию для использования каждой буквы в списке?

Например, у меня была другая функция

(define (smorg a)
  (...))

Итак, как я могу заниматься сморгом а, сморгом б, сморгом с ...?

Ответы [ 2 ]

6 голосов
/ 15 сентября 2011

Какой учебник вы используете?

Если ответ Как разрабатывать программы , то следуйте рецепту разработки. В частности, вам нужно определение данных; определение данных используется для генерации шаблона, который говорит вам, как правильно получить рекурсию.

Если вы не используете HtDP, я настоятельно рекомендую вам прочитать его. Книга доступна онлайн, здесь: http://www.htdp.org/. Тогда следуйте рецепту дизайна. В частности, вам нужно определение данных и т. Д. И т. Д.

В любом случае, вот подсказка: Никогда, ever используйте функцию list до того, как вы освоите рекурсию. Не в ваших функциях, даже в ваших примерах. Это мешает тебе. Создайте свои списки с помощью cons и empty.

2 голосов
/ 15 сентября 2011

Убедитесь, что вы понимаете, что делают list?, map, car и cdr. Они могут быть полезны.

...