parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

отстой :-P

Misha v.3 18.05.2006 17:45 / 18.05.2006 17:51

два одинаковых куска кода, которые бьют слово на буквы вынести в метод:
@splitByLetters[sWord]
$result[$._default(0)]

^sWord.match[(.)][g]{
	^result.add[
		$.[$match.1]($result.[$match.1] + 1)
	]
}
потом собственно:
$hHavedWord[^splitByLetters[$sHavedWord]]
$hTakenWord[^splitByLetters[$sTakenWord]]
и концовка плоховата, наверное лучше что-то типа такого:
$result(true)

^hTakenWord.foreach[sLetter;iNumberInWord]{
	^if($result && $hHavedWord.$sLetter < $iNumberInWord){
		$result(false)
		^rem{ и тут бы ^break[] пригодился, если бы он был }
	}
}
так мы будем реже ходить внутрь цикла и делать какие-то присваивания.

P.S. не проверял, но думаю идея понятна :)
P.P.S. при тестировании, если все тестируемые методы в одном файле, не забывайте делать ^memory:compact[] перед вызовами отдельных методов и менять их местами. ну и тестировать надо цикл из тысячи-другой вызовов... :)