Метод Пиза для for-цикла

Метод Пиза для for-цикла

Для простых for-циклов, которые должны выполниться строго определенное число раз, вместо рекурсии можно использовать весьма остроумный метод, предложенный Венделлом Пизом (Wendell Piez, Mullberry Technologies, Inc). Суть метода состоит в том, что хоть мы и не можем сгенерировать множество узлов, выбрать множество с определенным количеством узлов нам вполне по силам.

Для начала выберем какое-нибудь множество узлов документа преобразования:

<xsl:variable name="set" select="document(')//node()"/>

Затем для повторения определенных действий несколько раз используем конструкцию вида

<xsl:for-each select="$set[position() &lt;= $number]">

 <!-- Действия -->

</xsl:for-each>

где number указывает требуемое число итераций.

При использовании метода Пиза следует учитывать следующие особенности.

? Множество узлов set не должно быть слишком большим — иначе его выбор будет неэффективным.

? Множество узлов set обязательно должно содержать число итераций (number) узлов.

В целом же метод Пиза — классический пример эффективного применения инструментов не по назначению.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4.1.1 Процессы жизненного цикла ПО

Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России


R.6.5 Операторы цикла

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.6.5 Операторы цикла Эти операторы задают виды цикла.оператор-цикла: while ( выражение ) оператор do оператор while ( выражение ) for ( оператор-иниц выражение opt ; выражение opt ) оператороператор-иниц: оператор-выражение оператор-описаниеОбратите внимание, что конструкция


Синтаксис цикла

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Синтаксис цикла Синтаксис цикла непосредственно следует из предшествующих соображений, определяющих ингредиенты цикла. Он будет включать элементы, отмеченные как необходимые.[x]. Инвариант цикла inv - утверждение.[x]. Условие выхода exit, чья конъюнкция с inv дает желаемую


Прерывание и перезапуск цикла

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Прерывание и перезапуск цикла Иногда бывает нужно прервать выполнение цикла. Для этого JavaScript предоставляет Web-программистам операторы break и continue.Оператор прерывания break позволяет прервать выполнение цикла и перейти к следующему за ним выражению:while (a < 100) {a = a * i + 2;if (a


Прерывание и перезапуск цикла

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Прерывание и перезапуск цикла Иногда бывает нужно прервать выполнение цикла. Для этого JavaScript предоставляет Web-программистам операторы break и continue.Оператор прерывания break позволяет прервать выполнение цикла и перейти к следующему за ним выражению:while (a < 100) {a = a * i + 2;if (a >


Оператор цикла с предусловием while

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Оператор цикла с предусловием while Синтаксис:while (<выражение>) <оператор>Действие:Тело оператора цикла while выполняется до тех пор, пока значение <выражения> не станет ложным (т.е. равным нулю). Вначале вычисляется <выражение>. Если <выражение> изначально ложно,


Завершение цикла while

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Завершение цикла while      Мы подошли к самому существенному моменту рассмотрения циклов while. При построении цикла while вы должны включить в него какие-то конструкции, изменяющие величину проверяемого выражения так, чтобы в конце концов оно стало ложным. В противном случае


5.5. Инструкция цикла for

Из книги C++ для начинающих автора Липпман Стенли

5.5. Инструкция цикла for Как мы видели, выполнение программы часто состоит в повторении последовательности инструкций - до тех пор, пока некоторое условие остается истинным. Например, мы читаем и обрабатываем записи файла, пока не дойдем до его конца, перебираем элементы


Операторы цикла

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Операторы цикла Для многократного выполнения кода используют операторы цикла. Кроме того, циклы предоставляют удобные средства для манипулирования массивами.Цикл forОператор for служит для создания цикла. Он имеет следующий синтаксис:for (выражение инициализации;


2.2. Повторение (операторы цикла)

Из книги Конец холивара. Pascal vs C автора Кривцов М. А.

2.2. Повторение (операторы цикла) Циклом называется группа операторов, которая выполняется повторно. После каждого повторения проверяется условие, называемое условием окончания цикла, по которому принимается решение продолжать повторение или закончить


Оператор цикла for

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.


Операторы цикла while и repeat

Из книги автора

Операторы цикла while и repeat Оператор цикла while имеет следующую форму: while условие do оператор Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то


Длительность рабочего цикла

Из книги автора

Длительность рабочего цикла Но сам процесс работы серьезно изменился. В 1960-е годы я мог ждать день или два для получения результатов компиляции. В конце 1970-х годов программа из 50 000 строк компилировалась около 45 минут. Даже в 1990-е годы долгая сборка казалась нормой.В наши