Comment detail

RFC 4180対応版 CSVレコードの分解 (Nested Flatten)

This comment is reply for 1515 rubikitch: (RFC 4180対応版 CSVレコードの分解). Go to thread root.

call-with-input-stringには「portを引数に取る手続き」であれば何でも渡せるので、
(make-csv-reader #\,) の結果をそのまま渡すことができます。
lambdaにくるむ必要はありません。

それから、単純なインデックスつきループであれば
for-each-with-indexというのがあります。

なので、こんなふうに書けます:
1
2
3
4
5
6
(use text.csv)
(use gauche.sequence)

(define (splitCSV line)
  (for-each-with-index (cut print <>" => "<>)
      (call-with-input-string line (make-csv-reader #\,))))
おっと、カラムの表示は1からスタートでしたか。そしたらcutは使えないですね。
1
2
3
4
5
6
7
(use text.csv)
(use gauche.sequence)

(define (splitCSV line)
  (for-each-with-index
   (lambda (i e) (print (+ i 1)" => "e))
   (call-with-input-string line (make-csv-reader #\,))))
どうも、勉強になります。

Index

Feed

Other

Link

Pathtraq

loading...