SRFI 235 review Wolfgang Corcoran-Mathe (03 Sep 2022 13:51 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (03 Sep 2022 16:45 UTC)
Re: SRFI 235 review John Cowan (03 Sep 2022 17:21 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (03 Sep 2022 18:18 UTC)
Re: SRFI 235 review Wolfgang Corcoran-Mathe (04 Sep 2022 20:06 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (05 Sep 2022 06:31 UTC)
Re: SRFI 235 review John Cowan (05 Sep 2022 16:44 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (05 Sep 2022 17:58 UTC)
Re: SRFI 235 review John Cowan (05 Sep 2022 23:45 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (06 Sep 2022 06:27 UTC)
Re: SRFI 235 review Wolfgang Corcoran-Mathe (06 Sep 2022 19:46 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (06 Sep 2022 21:39 UTC)
Re: SRFI 235 review John Cowan (07 Sep 2022 01:46 UTC)
Re: SRFI 235 review Per Bothner (07 Sep 2022 05:04 UTC)
Re: SRFI 235 review John Cowan (07 Sep 2022 18:37 UTC)
Re: SRFI 235 review Per Bothner (07 Sep 2022 22:23 UTC)
Re: SRFI 235 review John Cowan (07 Sep 2022 23:29 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (09 Sep 2022 09:25 UTC)
Re: SRFI 235 review John Cowan (09 Sep 2022 19:54 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (09 Sep 2022 20:11 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (07 Sep 2022 06:29 UTC)
Re: SRFI 235 review Wolfgang Corcoran-Mathe (07 Sep 2022 18:02 UTC)
Re: SRFI 235 review Marc Nieper-Wißkirchen (07 Sep 2022 20:10 UTC)
Re: SRFI 235 review Lassi Kortela (07 Sep 2022 18:41 UTC)
Re: SRFI 235 review John Cowan (03 Sep 2022 17:17 UTC)
Re: SRFI 235 review Arvydas Silanskas (04 Sep 2022 08:35 UTC)

SRFI 235 review Wolfgang Corcoran-Mathe 03 Sep 2022 13:51 UTC
Hi John, Arvydas, and the SRFI 235 list,

Below are some comments and questions I have about the SRFI.  I've
also attached a patch (against John's repo) which fixes some minor
typos.

1. Can (complement proc) return #f if proc returns multiple values?

2. Why include both 'swap' and 'flip'?  The sample implementation
of 'swap' (srfi/235-impl.scm, line 9) differs from the spec. in that
the returned procedure accepts a "rest" argument:

(define (swap proc)
  (lambda (obj1 obj2 . rest)
    (apply proc obj2 obj1 rest)))

Is this the behavior you intend?

3. Minor clarifications: Is (conjoin) equivalent to (constantly #t)?
Is (disjoin) equivalent to (constantly #f)?

4. The 'all-of' and 'some-of' sample implementations don't return
the predicate's truthy value.

5. The spec. of 'on' is ambiguous.  mapper is applied "to each obj
in any order", then reducer is applied to the results--but in what
order?  The example doesn't settle this, since the reducer (+) is
commutative.

6. What happens if (on f g) is applied to no arguments?

7. Is (apply-chain) equivalent to (apply-chain values)?  If not,
what happens?

8. The example for 'case-procedure' lacks an else-thunk.

9. Major suggestion: Would it be reasonable for all of the
syntax-like procedures to accept thunks *or* promises?  I believe
this could be very useful, although the names might need tweaking.

Delayed evaluation always gets short shrift in Scheme.  It would
be a sad statement of the current situation for something called
"lazy-and-procedure" to have nothing to do with delayed evaluation.

Regards, Wolf

--
Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>