Permalink
Browse files

Merge pull request #48 from bacecek/master

Update coroutines.md
  • Loading branch information...
phplego committed Aug 22, 2017
2 parents 9cd5660 + d49eada commit 19ed94653b8c5a8b9d8ba14b900c62cb1c537802
Showing with 2 additions and 2 deletions.
  1. +2 −2 coroutines.md
View
@@ -225,7 +225,7 @@ fun main(args: Array<String>) {
}
//sampleEnd
// Print the first five Fibonacci numbers
// Print the first eight Fibonacci numbers
println(fibonacciSeq.take(8).toList())
}
```
@@ -263,7 +263,7 @@ Run the code above to see that if we print the first three elements, the numbers
To yield a collection (or sequence) of values at once, the `yieldAll()` function is available:-->
Запустите приведенный выше код, чтобы убедиться, что если мы будем печатать первые три элемента, цифры чередуются со `STEP`-ами по ветвям цикла. Это означает, что вычисления действительно ленивые. Для печати `1` мы выполняем только до первого `yield(i)` и печатаем `START` ходу дела. Затем, для печати `2`, нам необходимо переходить к следующему `yield(i)`, и здесь печатать `STEP`. То же самое и для `3`. И следующий `STEP` никогда не будет напечатан (точно так же как и `END`), поскольку мы никогда не запрашиваем дополнительных элементов последовательности.
Запустите приведенный выше код, чтобы убедиться, что если мы будем печатать первые три элемента, цифры чередуются со `STEP`-ами по ветвям цикла. Это означает, что вычисления действительно ленивые. Для печати `1` мы выполняем только до первого `yield(i)` и печатаем `START` по ходу дела. Затем, для печати `2`, нам необходимо переходить к следующему `yield(i)`, и здесь печатать `STEP`. То же самое и для `3`. И следующий `STEP` никогда не будет напечатан (точно так же как и `END`), поскольку мы никогда не запрашиваем дополнительных элементов последовательности.
Чтобы сразу породить всю коллекцию (или последовательность) значений, доступна функция `yieldAll()`:

0 comments on commit 19ed946

Please sign in to comment.