@@ -3774,7 +3774,17 @@ or do nothing.
37743774
37753775### Values
37763776
3777- #### <a href="#collect-val-value"><code>(COLLECT-VAL M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L70-L80">src</a></sub></sup><a name="collect-val-value"></a>
3777+ #### <a href="#collect-value"><code>(COLLECT INTO-ITR FA->M)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L85-L95">src</a></sub></sup><a name="collect-value"></a>
3778+ <code>∀ :A :B :C :D. (<a href="#monad-class">Monad</a> :C) (<a href="#intoiterator-class">IntoIterator</a> :A :B) ⇒ (:A → (:B → (:C :D)) → (:C (<a href="#list-type">List</a> :D)))</code>
3779+
3780+ Apply FA->M to each element produced by INTO-ITR and run the resulting monadic action.
3781+ Collect the results.
3782+
3783+
3784+
3785+ ***
3786+
3787+ #### <a href="#collect-val-value"><code>(COLLECT-VAL M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L72-L82">src</a></sub></sup><a name="collect-val-value"></a>
37783788<code>∀ :A :B :C. (<a href="#monad-class">Monad</a> :A) (<a href="#yielder-class">Yielder</a> :B) ⇒ ((:A (:B :C)) → (:A (<a href="#list-type">List</a> :C)))</code>
37793789
37803790Repeatedly run M-OPERATION, collecting each yielded value into a list until
@@ -3784,7 +3794,7 @@ no value is yielded.
37843794
37853795***
37863796
3787- #### <a href="#foreach-value"><code>(FOREACH INTO-ITR FA->M)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L83-L92 ">src</a></sub></sup><a name="foreach-value"></a>
3797+ #### <a href="#foreach-value"><code>(FOREACH INTO-ITR FA->M)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L98-L107 ">src</a></sub></sup><a name="foreach-value"></a>
37883798<code>∀ :A :B :C :D. (<a href="#monad-class">Monad</a> :C) (<a href="#intoiterator-class">IntoIterator</a> :A :B) ⇒ (:A → (:B → (:C :D)) → (:C <a href="#unit-type">Unit</a>))</code>
37893799
37903800Apply FA->M to each element produced by INTO-ITR and run the resulting monadic action.
@@ -3794,7 +3804,7 @@ Discards the return values and returns Unit.
37943804
37953805***
37963806
3797- #### <a href="#loop-times-value"><code>(LOOP-TIMES N M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L58-L66 ">src</a></sub></sup><a name="loop-times-value"></a>
3807+ #### <a href="#loop-times-value"><code>(LOOP-TIMES N M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L60-L68 ">src</a></sub></sup><a name="loop-times-value"></a>
37983808<code>∀ :A :B. <a href="#monad-class">Monad</a> :A ⇒ (<a href="#ufix-type">UFix</a> → (<a href="#ufix-type">UFix</a> → (:A :B)) → (:A <a href="#unit-type">Unit</a>))</code>
37993809
38003810Repeat M-OPERATION N times. Passes the current index (starting at 0) to
@@ -3804,7 +3814,7 @@ M-OPERATION. Returns Unit.
38043814
38053815***
38063816
3807- #### <a href="#loop-while-value"><code>(LOOP-WHILE M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L35-L41 ">src</a></sub></sup><a name="loop-while-value"></a>
3817+ #### <a href="#loop-while-value"><code>(LOOP-WHILE M-OPERATION)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L37-L43 ">src</a></sub></sup><a name="loop-while-value"></a>
38083818<code>∀ :A :B. (<a href="#monad-class">Monad</a> :A) (<a href="#terminator-class">Terminator</a> :B) ⇒ ((:A :B) → (:A <a href="#unit-type">Unit</a>))</code>
38093819
38103820Repeat M-OPERATION until it returns a terminated value. Returns Unit.
@@ -3813,14 +3823,25 @@ Repeat M-OPERATION until it returns a terminated value. Returns Unit.
38133823
38143824***
38153825
3816- #### <a href="#loop-while-valm-value"><code>(LOOP-WHILE-VALM M-OPERATION F)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L44-L55 ">src</a></sub></sup><a name="loop-while-valm-value"></a>
3826+ #### <a href="#loop-while-valm-value"><code>(LOOP-WHILE-VALM M-OPERATION F)</code></a> <sup><sub>[FUNCTION] · <a href="https://github.com/coalton-lang/coalton/tree/main/library/experimental/do-control-loops.lisp#L46-L57 ">src</a></sub></sup><a name="loop-while-valm-value"></a>
38173827<code>∀ :A :B :C :D. (<a href="#monad-class">Monad</a> :A) (<a href="#yielder-class">Yielder</a> :B) ⇒ ((:A (:B :C)) → (:C → (:A :D)) → (:A <a href="#unit-type">Unit</a>))</code>
38183828
38193829Repeat M-OPERATION while it yields a value, running the yielded value applied to F.
38203830Returns Unit.
38213831
38223832
38233833
3834+ ***
3835+
3836+ ### Macros
3837+
3838+ #### <a href="#coalton-library-experimental-do-control-loops-do-collect-macro"><code>DO-COLLECT ((SYM INTO-ITR) &BODY BODY)</code></a> <sup><sub>[MACRO]</sub></sup><a name="coalton-library-experimental-do-control-loops-do-collect-macro"></a>
3839+
3840+ Apply FA->M to each element produced by INTO-ITR and run the resulting monadic action.
3841+ Collect the results.
3842+
3843+
3844+
38243845***
38253846
38263847# Package `COALTON-LIBRARY/EXPERIMENTAL/DO-CONTROL-LOOPS-ADV`<a name="coalton-library/experimental/do-control-loops-adv-package"></a>
0 commit comments