(define (teken-n x y n)
(if (not (zero? n))
(begin
(teken-symbolen x y)
(teken-n x y (- n 1)))))
(define (teken-symbolen-combinatie x y n)
(if (not (zero? n))
(begin
(let ((acc 0))
(teken-n x y (+ acc 1))
(newline)
(teken-symbolen-combinatie x y (- n 1))))))
Использование (teken-n x y n)
для печати 2 символов, 'x 'y
в виде xyx
n раз на 1 строке без пробелов.Это работает правильно.
то, что я пытаюсь сделать с помощью (teken-symbolen-combinatie x y n)
, будет выводом
(teken-symbolen-combinatie '- '* 3)
-*-
-*--*-
-*--*--*-
Мой код дает только первую комбинацию символов, в этом примере - * - 3раз отделены новой строкой.Это означает, что последняя переменная моей первой функции не увеличивается правильно.Я не могу понять, почему.
РЕДАКТИРОВАТЬ: исправление ошибок в вопросе