Witam,
otóż mam zadanie i chciałbym Was prosić, byście troszkę mi pomogli z moim problemem:) Oŧóż jak wiemy, w języku Scheme nie ma iteracji. Czy mógłby mi ktoś przedstawić algorytm albo napisać program, (chociaż wolałbym to pierwsze!) by zrobić poniższe zadania:
-
(szyfr_1 lista n) - funkcja "przepisuje" listę w kolejności"
1, n+1, 2n+1, 3n+1, kn+1, 2, n+2, 2n+2, 3n+2, kn+2, 3, n+3, 3*n+3 ..., n, 2n, 3n, ..., m
gdzie k = m / n - 1. Dla ułatwienia zakładamy, że długość wejściowej listy m jest podzielna przez n oraz n >= 1.
* (szyfr_2 lista n) - funkcja "przepisuje" listę w taki sposób, że odwraca kolejne bloki o długości n >= 1. Dla ułatwienia zakładamy, że długość wejściowej listy m jest podzielna przez n.
I ma dawać to takie efekty:
(define f (lambda (x) (* 2 x)))
(display (szyfr_1 '(1 2 3 4 5 6) 2)) (newline)
(display (szyfr_2 '(1 2 3 4 5 6) 3)) (newline)
takie mam zadanie i nie wiem jak się za to ugryźć. W ogóle rekurencja to zło i przeżytek, bo o ile da się prosto napisać takie zadanie iteracyjnie (aż prosi się o while!), to muszę męczyć swój musk czymś takim.
Płacę złotymi browarami!!
Z góry dzięki za pomoc:D