2010/10/22

vector-iota

(vector-iota 10)
;; #(0 1 2 3 4 5 6 7 8 9)
(vector-iota 10 10)
;; #(10 11 12 13 14 15 16 17 18 19)
(vector-iota 10 0 2)
;; #(0 2 4 6 8 10 12 14 16 18)

(use srfi-43)
(define (vector-iota count :optional (start 0)(step 1))
(vector-unfold
(lambda (i x)
(values (+ (* i step) x) x)) count start))
view raw vector-iota.scm hosted with ❤ by GitHub


追記

@valvallow (use srfi-42)(define (vector-iota c :optional(b 0)(s 1))(vector-ec(: x b (+ b(* s c))s)x)) 内包表記ってドキュメントがよくわかんないですよね。
(use srfi-42)

(define (vector-iota c :optional(b 0)(s 1))
  (vector-ec (: x b (+ b (* s c)) s) x))

(vector-iota 10 1 3)
;; #(1 4 7 10 13 16 19 22 25 28)
内包表記、使いこなせねぇー!

プログラミングGauche

0 件のコメント:

コメントを投稿