|
range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 11:29 UTC)
|
|
Re: range->vector
John Cowan
(01 Sep 2020 15:29 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 15:45 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(01 Sep 2020 16:33 UTC)
|
|
Re: range->vector
John Cowan
(01 Sep 2020 17:12 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 17:27 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(01 Sep 2020 17:34 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 17:36 UTC)
|
|
Re: range->vector
Arthur A. Gleckler
(01 Sep 2020 17:37 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 17:38 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(01 Sep 2020 17:46 UTC)
|
|
Re: range->vector
John Cowan
(01 Sep 2020 18:23 UTC)
|
|
Re: range->vector
Arthur A. Gleckler
(01 Sep 2020 18:40 UTC)
|
|
Re: range->vector
John Cowan
(01 Sep 2020 18:42 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 18:52 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(01 Sep 2020 19:22 UTC)
|
|
Re: range->vector
John Cowan
(03 Sep 2020 00:15 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(03 Sep 2020 02:27 UTC)
|
|
Re: range->vector
John Cowan
(03 Sep 2020 03:35 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(03 Sep 2020 06:47 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(03 Sep 2020 18:04 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(03 Sep 2020 18:27 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(03 Sep 2020 19:10 UTC)
|
|
Re: range->vector
Wolfgang Corcoran-Mathe
(03 Sep 2020 20:32 UTC)
|
|
Re: range->vector Wolfgang Corcoran-Mathe (03 Sep 2020 07:11 UTC)
|
|
Re: range->vector
Marc Nieper-Wißkirchen
(03 Sep 2020 07:14 UTC)
|
On 2020-09-02 23:35 -0400, John Cowan wrote:
> Range-reverse is safe unless you reverse the range over and over (which is
> unlikely), because the reverser part is trivially O(1).
OK.
A thought: What do you think about keeping the indexer-composing
version in the two-range case of range-append? e.g.
(define range-append
(case-lambda
; ...
((ra rb) ; two-range fast path
(let ((la (range-length ra))
(lb (range-length rb)))
(raw-range 0
(+ la lb)
(lambda (i)
(if (< i la)
(range-ref ra i)
(range-ref rb (- i la)))))))
; ...
))
This indexer is O(1) on its own, and successive two-range appends
would, in essence, build a binary search tree associating indices with
ranges.
The variadic case would still return a vector-style range.
--
Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz>
"The usual way in which we plan today for tomorrow is in
yesterday's vocabulary." --Edsger W. Dijkstra