Hi all, I spent (far too much) time this morning refactoring the definition of in-vector to expose the building blocks to compose these macro/functions. After refactoring the code for defining in-vector is:
(define-:vector-like-gen :vector-gen unsafe-vector-ref) (define-in-vector-like in-vector "vector" vector? vector-length :vector-gen) (define-sequence-syntax *in-vector (lambda () #'in-vector) (make-in-vector-like #'vector? #'unsafe-vector-length #'in-vector #'unsafe-vector-ref)) This could obviously be made smaller but it sufficient to enable reuse for in-flvector (my goal), in-f64vector etc. In doing so I split for.rkt into three (I couldn't handle refactoring the 1000+ lines of for.rkt; I needed something smaller to understand it all). Since this is a moderately large change I'm looking for comments/objections before committing. If you have objections please let me know -- if I don't hear any I'll commit tomorrow. Diff is attached. N.
vector.diff
Description: Binary data
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev