Our great sponsors
- Onboard AI - Learn any GitHub repo in 59 seconds
- InfluxDB - Collect and Analyze Billions of Data Points in Real Time
- SaaSHub - Software Alternatives and Reviews
-
As !! is used very rarely (& in lot of cases algorithm can be re-thought to other way). Comparing to cons,snoc,<>, which are used more frequently then fold*,traverse - which are used more frequently than !! - I agree that the lack of built-in !! is not hat big of a deal for me, in the end I can add indexDList = fromList $ (toList x) !! i into Utils if I ever need one (because I would still save a lot of computations on cons,snoc,<> phases & would wait on https://github.com/haskell-perf/sequences/issues/26 results.
-
To be sure I additionally checked with spl (DList author) in: https://github.com/spl/dlist/issues/102 & chrisdone of course holds the benchmarking repository.
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
-
I had a play around a while ago with a very similar idea, using a fold over a slice as the container https://gitlab.com/transportengineering/vector-odd/-/blob/master/src/Data/Vector/Odd/Slice.hs . The idea was it would keep track of the number of indirections and re-optimise (i.e. write all the elements to a vector, and then turn the CPS function into a fold over that) automatically. It would probably work better if it were actually integrated in the GC or something so it would transparently "optimise". There were some basic benchmarks that I can't remember the results for :).