Содержание сайта
Главная Новичку Цитаты Реализации Статьи Документация
Компании Программы Ссылки Обсуждение Обсуждение 2 Гостевая

Метод SequenceableCollection>>allCombinations

Простая рекурсивная реализация.

SequenceableCollection>>allCombinations
	| first comb |
	self isEmpty ifTrue: [ ^self species with: self ].
	first := self species with: self first.
	comb := (self copyFrom: 2 to: self size) allCombinations.
	^(comb collect: [ :e | first , e ]) , comb

Пример использования:

comb := 'mama myla ramu' subStrings
	allCombinations reject: [ :e | e isEmpty ].

Получаем все непустые комбинации из слов в строке.




Есть комментарии? Пишите.