A few half-baked ideas for SRFI 210
John Cowan
(31 Aug 2020 15:59 UTC)
|
Re: A few half-baked ideas for SRFI 210
Marc Nieper-Wißkirchen
(31 Aug 2020 16:18 UTC)
|
Fwd: A few half-baked ideas for SRFI 210 Marc Nieper-Wißkirchen (31 Aug 2020 16:20 UTC)
|
Re: A few half-baked ideas for SRFI 210
Marc Nieper-Wißkirchen
(31 Aug 2020 18:17 UTC)
|
Fwd: A few half-baked ideas for SRFI 210 Marc Nieper-WiÃkirchen 31 Aug 2020 16:20 UTC
---------- Forwarded message --------- Von: Marc Nieper-Wißkirchen <xxxxxx@gmail.com> Date: Mo., 31. Aug. 2020 um 18:17 Uhr Subject: Re: A few half-baked ideas for SRFI 210 To: John Cowan <xxxxxx@ccil.org> Cc: <xxxxxx@srfi.schemers.org>, <xxxxxx@srfi.schemers.org>, Adam Nelson <xxxxxx@nels.onl> I like these ideas, in particular in conjunction with SRFI 197! I've put Adam and the SRFI 197 mailing list in CC. In some sense, your proposal extends the syntax value/mv that is already in SRFI 210, which just picks a particular value (read "projection"). Give me a moment of time to think about a detailed interface. Further syntax (also related to pipelining), we should consider to add are: (bind <producer> <transducer> ... <consumer>) which is evaluated by evaluating all arguments and then by calling the value of the first <transducer> with the values of <producer>, calling the value of the next <transducer> with the resulting values and so on until the the value of <consumer> is called to yield the final values. Related is (compose transducer ... transducer), which is just multiple-value-aware composition (this doesn't have to be syntax; it could be a procedure). and (bind* list transducer ... consumer) which is a procedure evaluating (bind (apply values list) transducer ... consumer) Am Mo., 31. Aug. 2020 um 17:59 Uhr schrieb John Cowan <xxxxxx@ccil.org>: > > These procedures will work well with SRFI 197 to provide glue, I think. > > Filter: takes a producer, a predicate, and a consumer. Values from the producer are sent to the consumer iff they satisfy the predicate, which takes both the index and the value. We can specialize this to remove, take, drop, take-right, drop-right, take-while, drop-while easily. > > Map: takes a producer, a procedure, and a consumer, and does the obvious. Should the procedure take both index and value also? > > Rearrange: Takes a list of indices to rearrange the producer's values to the order the consumer expects. Values with missing indices are dropped. Should unknown indices get a specified default? Some way to handle "all other values" like an improper list? > > > > John Cowan http://vrici.lojban.org/~cowan xxxxxx@ccil.org > Mos Eisley spaceport. You will never see a more wretched hive of scum > and villainy --unless you watch the Jerry Springer Show. > --georgettesworld.com > >