SRFI 197: Threading Macros Arthur A. Gleckler (09 Jun 2020 03:41 UTC)
First comments Marc Nieper-Wißkirchen (09 Jun 2020 06:48 UTC)
Re: First comments Linus Björnstam (09 Jun 2020 07:27 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 08:30 UTC)
Re: First comments Adam Nelson (09 Jun 2020 13:25 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 14:06 UTC)
Re: First comments Lassi Kortela (09 Jun 2020 14:12 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 15:28 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 16:05 UTC)
Re: First comments Adam Nelson (09 Jun 2020 16:15 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 16:22 UTC)
Re: First comments Arne Babenhauserheide (09 Jun 2020 17:03 UTC)
Re: First comments Adam Nelson (09 Jun 2020 17:16 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 17:22 UTC)
Re: First comments Lassi Kortela (09 Jun 2020 17:31 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 17:40 UTC)
Re: First comments Arne Babenhauserheide (09 Jun 2020 22:19 UTC)
Re: First comments Marc Nieper-Wißkirchen (10 Jun 2020 06:16 UTC)
Re: First comments Linus Björnstam (10 Jun 2020 07:17 UTC)
Re: First comments Marc Nieper-Wißkirchen (10 Jun 2020 07:38 UTC)
Re: First comments Linus Björnstam (10 Jun 2020 08:21 UTC)
Re: First comments Marc Nieper-Wißkirchen (10 Jun 2020 08:42 UTC)
Re: First comments Linus Björnstam (15 Jun 2020 19:50 UTC)
Re: First comments Marc Nieper-Wißkirchen (15 Jun 2020 20:09 UTC)
Re: First comments Linus Björnstam (16 Jun 2020 11:39 UTC)
Re: First comments Arne Babenhauserheide (10 Jun 2020 07:53 UTC)
Re: First comments Marc Nieper-Wißkirchen (10 Jun 2020 08:04 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 17:44 UTC)
Re: First comments Adam Nelson (09 Jun 2020 17:46 UTC)
Re: First comments Marc Nieper-Wißkirchen (09 Jun 2020 17:49 UTC)
Re: First comments Arvydas Silanskas (09 Jun 2020 07:40 UTC)
Named procedure; RE: SRFI 197: Threading Macros Arne Babenhauserheide (09 Jun 2020 13:40 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Adam Nelson (09 Jun 2020 13:48 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 14:09 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros hga@xxxxxx (09 Jun 2020 14:16 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Lassi Kortela (09 Jun 2020 14:42 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 14:48 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros hga@xxxxxx (09 Jun 2020 15:10 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 15:25 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Arne Babenhauserheide (09 Jun 2020 15:47 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 15:58 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Adam Nelson (09 Jun 2020 16:21 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 16:46 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Adam Nelson (09 Jun 2020 17:13 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 17:35 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros John Cowan (11 Jun 2020 00:59 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros hga@xxxxxx (09 Jun 2020 16:58 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Lassi Kortela (09 Jun 2020 17:00 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Arne Babenhauserheide (09 Jun 2020 17:00 UTC)
Re: Named procedure; RE: SRFI 197: Threading Macros Marc Nieper-Wißkirchen (09 Jun 2020 15:17 UTC)
Usecase: chaining operations after "optionals" Arne Babenhauserheide (09 Jun 2020 17:18 UTC)
Re: Usecase: chaining operations after "optionals" Adam Nelson (09 Jun 2020 17:24 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (09 Jun 2020 17:48 UTC)
Re: Usecase: chaining operations after "optionals" Adam Nelson (09 Jun 2020 17:55 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (09 Jun 2020 19:11 UTC)
Re: Usecase: chaining operations after "optionals" Arne Babenhauserheide (09 Jun 2020 22:08 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (10 Jun 2020 06:11 UTC)
Re: Usecase: chaining operations after "optionals" Arne Babenhauserheide (10 Jun 2020 08:03 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (10 Jun 2020 08:10 UTC)
Association list utilities Lassi Kortela (10 Jun 2020 08:24 UTC)
Re: Association list utilities Marc Nieper-Wißkirchen (10 Jun 2020 08:30 UTC)
Re: Association list utilities Lassi Kortela (10 Jun 2020 08:49 UTC)
Re: Association list utilities Marc Nieper-Wißkirchen (10 Jun 2020 09:29 UTC)
Re: Association list utilities Lassi Kortela (10 Jun 2020 09:59 UTC)
Re: Association list utilities Marc Nieper-Wißkirchen (10 Jun 2020 10:09 UTC)
Re: Association list utilities Lassi Kortela (10 Jun 2020 10:37 UTC)
Re: Association list utilities Arne Babenhauserheide (10 Jun 2020 10:33 UTC)
Re: Usecase: chaining operations after "optionals" Arne Babenhauserheide (10 Jun 2020 09:16 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (10 Jun 2020 09:19 UTC)
Re: Usecase: chaining operations after "optionals" Lassi Kortela (10 Jun 2020 09:29 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (10 Jun 2020 09:42 UTC)
More on association lists (and other key-value collections) Lassi Kortela (10 Jun 2020 10:16 UTC)
Re: More on association lists (and other key-value collections) Marc Nieper-Wißkirchen (10 Jun 2020 10:42 UTC)
Re: More on association lists (and other key-value collections) Arne Babenhauserheide (11 Jun 2020 00:41 UTC)
Re: More on association lists (and other key-value collections) Marc Nieper-Wißkirchen (11 Jun 2020 10:07 UTC)
Re: Usecase: chaining operations after "optionals" Arne Babenhauserheide (10 Jun 2020 10:28 UTC)
Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen (10 Jun 2020 10:32 UTC)

Re: Usecase: chaining operations after "optionals" Marc Nieper-Wißkirchen 09 Jun 2020 17:48 UTC

And this is the canonical R7RS-small solution:

(cond ((assoc 'foo '((foo . bar))) => (lambda (x) (symbol->string (cdr
x)))) (else #f))

(Not that your examples are all missing a `cdr', I think.)

As we can see, R7RS-small already provides all we need. :) And it's
even quite idiomatic.

Am Di., 9. Juni 2020 um 19:24 Uhr schrieb Adam Nelson <xxxxxx@nels.onl>:
>
> On 6/9/20 1:18 PM, Arne Babenhauserheide wrote:
>
> Hi,
>
> I’ve long had a usecase without a good solution: chaining an operation
> after assoc.
>
> Would this work?
>
> (and-> (assoc 'foo '((foo . bar)))
>        symbol->string)
>
> The result would be "bar" in this case, but in the other case
>
> (and-> (assoc 'foo '((something . else)))
>        symbol->string)
>
> the result would be #f without ever calling symbol->string.
>
> Best wishes,
> Arne
>
> Yes, this seems like an ideal use case for this this macro, and should probably be in the document.
>
> This seems like a good opportunity to spell out this expression in some of the syntaxes we're thinking about right now, to see how they compare.
>
> This is how it would be done right now in SRFI 2:
>
> (and-let* ((x (assoc 'foo '((foo . bar))))) (symbol->string x))
>
> And here are some of the syntaxes we're considering:
>
> (and=> (assoc 'foo '((foo . bar))) (symbol->string))
>
> (and-chain (assoc 'foo '((foo . bar))) (symbol->string))
>
> (and-chain (assoc 'foo '((foo . bar))) (symbol->string <>))
>
> (and-bind (assoc 'foo '((foo . bar))) (cut symbol->string <>))
>
> There's actually not as much difference between these as I was expecting.