func sequence<T>(first: T, next: (T) -> T?) -> UnfoldFirstSequence<T>
first
and repeated lazy applications of next
.
first
からそして繰り返しnext
を遅延適用して形成されたシーケンスを返します。
next
to a mutable state
.
繰り返しnext
を可変のstate
に遅延適用することから形成されたシーケンスを返します。
Availability
Technology
func sequence<T, State>(state: State, next: @escaping (inout State) -> T?) -> UnfoldSequence
<T, State>
state
The initial state that will be passed to the closure. 初期状態、それはクロージャに渡されます。
next
A closure that accepts an inout
state and returns the next element of the sequence.
inout
状態を受け取り、そしてそのシーケンスの次の要素を返すクロージャ。
A sequence that yields each successive value from next
.
あるシーケンス、それはnext
から連続した値各々をもたらします。
The elements of the sequence are obtained by invoking next
with a mutable state. The same state is passed to all invocations of next
, so subsequent calls will see any mutations made by previous calls. The sequence ends when next
returns nil
. If next
never returns nil
, the sequence is infinite.
シーケンスの要素は、 next
をある可変の状態とともに発動することによって入手されます。その同じ状態は、next
のすべてに呼び出しに対して渡されます、なので続いて起こる呼び出しは前の呼び出しによって為される何らかの変化を見ることになるでしょう。このシーケンスは、next
がnil
を返す時に終わります。next
が決してnil
を返さないならば、 このシーケンスは果てがありません。
This function can be used to replace many instances of Any
that wrap a closure.
この関数は、クロージャをラップするAny
の多くのインスタンスを置き換えるのに使用できます。
Example: 例:
func sequence<T>(first: T, next: (T) -> T?) -> UnfoldFirstSequence<T>
first
and repeated lazy applications of next
.
first
からそして繰り返しnext
を遅延適用して形成されたシーケンスを返します。