| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Артём 06.02.2003 15:43
да действительно, не стоит делать из этого класс, лучше метод.@revolver[source_table;quant][added;rand_code;count]
# $count засовываю в переменную, чтобы не доставать
# в процессе выполнения $rand_code каждый раз ее из $source_table
$count(^source_table.count[])
^if($count <= 3){
$result[]
}{
$result[^source_table.select(0)]
# # хеш, куда пишем то, что уже добавили в результат.
# # нужно, чтобы не было дублирования
$added[^hash::create[]]
# # код, который вычисляет нам в цикле случайную строку
$rand_code{^eval(^math:random($count)+1)}
^while($quant > ^result.count[]){
$rand($rand_code)
^while($added.[$rand]){$rand($rand_code)}
^result.join[^source_table.select(^source_table.line[] == $rand))]
^added.add[$.$rand(1)]
}
}
#end @revolver[]