vector->range issues Wolfgang Corcoran-Mathe (01 Sep 2020 19:21 UTC)
Re: vector->range issues Marc Nieper-Wißkirchen (01 Sep 2020 19:28 UTC)
Re: vector->range issues Wolfgang Corcoran-Mathe (01 Sep 2020 20:52 UTC)
Re: vector->range issues Marc Nieper-Wißkirchen (02 Sep 2020 05:48 UTC)
Re: vector->range issues Marc Nieper-Wißkirchen (02 Sep 2020 07:57 UTC)
string-range Marc Nieper-Wißkirchen (02 Sep 2020 13:14 UTC)
Re: string-range Wolfgang Corcoran-Mathe (02 Sep 2020 14:50 UTC)
Re: string-range Marc Nieper-Wißkirchen (02 Sep 2020 15:01 UTC)
Re: string-range Wolfgang Corcoran-Mathe (02 Sep 2020 15:56 UTC)
Re: string-range Marc Nieper-Wißkirchen (02 Sep 2020 15:58 UTC)
Re: string-range John Cowan (02 Sep 2020 21:12 UTC)
Re: string-range Wolfgang Corcoran-Mathe (02 Sep 2020 21:16 UTC)
Re: string-range Wolfgang Corcoran-Mathe (02 Sep 2020 21:25 UTC)
Re: vector->range issues Wolfgang Corcoran-Mathe (02 Sep 2020 14:46 UTC)

Re: string-range Wolfgang Corcoran-Mathe 02 Sep 2020 15:56 UTC

On 2020-09-02 17:01 +0200, Marc Nieper-Wißkirchen wrote:
> Would (range->string RANGE) also make sense then? It would be an error
> if not every element of the range were a character.
>
> (define (range->string range)
>   (let ((s (make-string (range-length range))))
>     (range-fold (lambda (i ch) (string-set! s i ch) (+ 1 i)) 0 range)
>     s))
>
> (No assume necessary because string-set! should have a type test for CH.)
>
> In case, an implementation (with O(1) access to random string
> elements) implements string ranges in a special way, the restriction
> that the result of range->string mustn't be modified should be added
> (as we have it for range->vector).

For completeness, yes, this should be added, since vector-range has
range->vector, etc.  Hopefully this will be it for additional
conversions and constructors.

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

"Some folks think Postmodernism means little more than the Empowerment
of the Vulgar.  Some folks think the same about Perl." --Larry Wall