LINUX.ORG.RU

Erlang, list comprehensions, туплю.


0

0

Читаю "Armstrong Thesis", нашёл там такую функцию:

perms([]) -> [[]];
perms(L) -> [[H|T] || H <- L, T <- perms(L--[H])].

Пример того, как она работает:

> perms("123").
["123","132","213","231","312","321"].

Про list comprehensions прочитал, вроде разобрался (кстати, как этот термин звучит по-русски?), но понять толком, как эта ф-я работает пока не получается (может просто надо выспаться? ;).

%% Помогите разложить по полочкам. %)

★★★★

перестановки:
если список L пустой, то все понятно
если непустой, то сформировать выходной список (назовем его X). каждый элемент списка Х есть список (Yi). голова(H) каждого Yi - это поочередно каждый элемент из L. а хвост каждого Yi - это начальный список L без элемента, равного H.

list comprehensions - списковые включения или просто списковые выражения

bik ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.