Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
28.06.2014
Размер:
1.37 Кб
Скачать
--Аналогично 2.5. Задано число n и список. Требуется получить список, в котором:
-- * порядок элементов на позициях, не кратных n, сохраняется;
-- * порядок элементов на позициях, кратных n, меняется на обратный.

f26 xs n = f26_1 xs [] [] 1 n

-- Первый парамметр - Исходный спиок
-- Второй параметр - список элементов, номера которых не кратны n
-- Третий параметр - список элементов, номера которых кратны n
-- Четвертый параметр - номер рассматриваемого элемента по модулю n.
-- Пятный параметр - номер из условия
-- Сложность функции - n.
-- Просматривая каждый элемент, определяем в какой список он входит:
-- его номер кратен n или нет.
-- Разобрав весь список запускаем процедуру f26_2

f26_1 [] y z i n = f26_2 (f24 y) z 1 n
f26_1 (x:xs) y z i n = if i < n then
f26_1 xs (x:y) z (i+1) n
else
f26_1 xs y (x:z) 1 n

--Процедура
f26_2 [] ys i n= ys
f26_2 xs [] i n= xs
f26_2 (x:xs) (y:ys) i n = if i < n then
x:(f26_2 xs (y:ys) (i+1) n)
else
y:(f26_2 (x:xs) ys 1 n)


f24 xs = f24_1 xs []
f24_1 [] y = y
f24_1 (x:xs) y = f24_1 xs (x:y)
Соседние файлы в папке 2