On 9/5/13 10:42 AM, Konrad Hinsen wrote:
Neil Toronto writes:

  > FWIW, `vector->immutable-vector' is pretty fast. It's usually the least
  > significant part of an O(n) operation. Its two biggest problems are that
  > it allocates memory and annoys people.

That's a good summary of my first impressions ;-)

  > If you're working in Typed Racket, you might consider using the
  > `math/array' library. It provides multidimensional arrays with O(1)

It's on my radar for when I move on to exploring Typed Racket. The
concept looks very interesting, with many idea's from Haskell's REPA,
except that it's in a language I can actually use to do something
useful.

  > to do something similar: have library functions operate on mutable
  > vectors, with user-facing functions accepting and receiving immutable
  > vectors, or some more abstract wrapper data type. The `math/matrix'

That's certainly doable, but it looks like a lot of overhead for using
a very basic data structure.


Scott Klarenbach writes:

  > Check out some of the functional data structures found here:
  >
  > http://www.ccs.neu.edu/racket/pubs/sfp10-kth.pdf
  >
  > VLists may be of particular interest in your case.

That's the stuff in the pfds package, right?

   https://pkg.racket-lang.org/info/pfds

Interesting indeed, makes me think of Clojure vectors. And written to
be used as a drop-in replacement for lists. I'll play with that as
well!

The implementation is in Typed Racket as well, so should I expect the
same performance problems as with arrays when I work in plain Racket?

Thee is also this:

   https://pkg.racket-lang.org/info/ralist

Which is not written in typed racket and has an un-contracted form for efficiency.

David



____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to