On Tue, Feb 25, 2025 at 11:52 AM 'Brian Candler' via golang-nuts <golang-nuts@googlegroups.com> wrote: > > You can curry a function? > > On Tuesday, 25 February 2025 at 18:52:09 UTC Jason E. Aten wrote: >> >> Hi Ian, I'm not quite understanding -- is Push meant to take an input seq >> too? like >> >> func Push[E any](inputSeq iter.Seq[E]) (seq iter.Seq[E], yield func(E), stop >> func()) >> ^^^^^^^^ >> ?
I'm suggesting that Push returns, conceptually, two things: an iter.Seq, and a pair of functions. You hand the iter.Seq off to something that expects an iter.Seq. You use the two functions to push values into the iter.Seq. Just as iter.Pull gives you flexibility to fetch values from the sequence however you like, iter.Push gives you flexibility to push values into the sequence however you like, without being tied to the lifespan of a single function. In the original example, the values to push into the sequence would come from a method call. This can all be done already with channels, of course, as shown by the earlier examples. Ian >> On Tuesday, February 25, 2025 at 6:15:40 PM UTC Ian Lance Taylor wrote: >>> >>> On Tue, Feb 25, 2025 at 6:17 AM Nuno Cruces <ncr...@gmail.com> wrote: >>> > >>> > I wanted a solution that doesn't necessarily involve goroutines and >>> > channels, for the same reason that iter.Pull was created: because >>> > goroutines and channels add unnecessary parallelism that has the >>> > potential to introduce data races, when what is needed is concurrency >>> > without parallelism. >>> >>> I think what you're presenting is an argument for >>> >>> package iter >>> >>> // Push returns an iterator, a yield function, and a stop function. >>> // The iterator will return all the values passed to the yield function. >>> // The iterator will stop when the stop function is called. >>> // This provides a way to flexibly convert a sequence of values into a Seq. >>> func Push[E any]() (seq iter.Seq[E], yield func(E), stop func()) >>> >>> Ian > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/b46f0864-9dfd-4c1c-b34a-dff83decae7fn%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcWmTubCfieowziq9BgyqiJddp6sv2g%3Dm4v44FF5P-5aHg%40mail.gmail.com.