Я пытаюсь решить проблему в Схеме, которая требует от меня использования вложенного цикла или вложенной рекурсии.
например. У меня есть два списка, которые я должен проверить на их декартово произведение.
Как лучше всего подойти к этим типам проблем? Любые указатели на то, как упростить эти типы функций?
Я немного уточню, так как мое намерение может быть недостаточно ясным.
Регулярная рекурсивная функция может выглядеть так:
(define (factorial n)
(factorial-impl n 1))
(define (factorial-impl n t)
(if (eq? n 0)
t
(factorial-impl (- n 1) (* t n))))
Попытка написать подобную функцию, но с вложенной рекурсией вводит новый уровень сложности в код, и мне было интересно, что такое базовый шаблон для этих типов функций, поскольку он может стать очень уродливым, очень быстрым.
В качестве конкретного примера я ищу самый простой способ посетить все элементы в декартовом продукте из двух списков.