Здравствуйте, nikov, Вы писали:
N>В качестве тренировки написал такие функции (получение всех перестановок и всех подстрок строки):
N>N>permutations :: [a] -> [[a]]
N>permutations [] = [[]]
N>permutations xs = [x:p | (x,n) <- zip xs [0..], p <- let (l,r) = splitAt n xs in permutations $ l ++ tail r]
N>
N>Как их можно переписать короче/элегантнее/понятнее/эффективнее? Конечно, не используя стандартных permutations и subsequences.
Перестановки в соседнем топике были
http://rsdn.ru/forum/message/3386768.1.aspxАвтор: Буравчик
Дата: 12.05.09
.