/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/Operators/yieldsequence.html
48 строк
2 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html> <head> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> <param name="Keyword" value="yield sequence"> </object> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> </head> <body> <H1>Оператор yield sequence</H1> <p>Оператор yield sequence используется в функциях, генерирующих последовательности, вместе с <a href="yield.html">оператором yield</a>, и имеет вид:</p> <blockquote> <p><b><code>yield sequence</code></b> <i>выражение</i></p> </blockquote> <p>В отличие от <a href="yield.html">оператора yield</a>, оператор yield sequence перебирает элементы последовательности, указанной в выражении и возвращает эти элементы в качестве значений основной функции-итератора. Например, следующий код:</p> <blockquote> <p><code><strong>function</strong> f: <strong>sequence of</strong> real;<br> <strong>begin</strong><br> <strong>yield</strong> <strong>sequence</strong> Seq(1,2,3);<br> <strong>yield</strong> 4;<br><strong>end</strong>;<br> <br><strong>begin</strong><br> f.Println;<br><strong>end</strong>. </code></p> </blockquote> <p>выведет последовательность</p> <blockquote> <p><code>1 2 3 4 </code></p> </blockquote> <p>Следующий пример иллюстрирует формирование последовательности элементов при обходе бинарного дерева в инфиксном порядке:</p> <blockquote> <p><code><strong>function</strong> InfixPrintTree<T>(root: Node<T>): <strong> sequence of</strong> T;<br><strong>begin</strong><br> <strong>if</strong> root = nil <strong>then</strong> exit;<br> <strong>yield</strong> <strong>sequence</strong> InfixPrintTree(root.left);<br> <strong>yield</strong> root.data;<br> <strong>yield</strong> <strong>sequence</strong> InfixPrintTree(root.right);<br><strong>end</strong>;</code></p> </blockquote> <p>Для функций, в теле которых присутствуют yield sequence, действуют те же ограничения, что и для функций с yield.</p> </body> </html>