(sys:load "libs/core/adt.xtm")
(bind-func csv_dump
(lambda (file)
(letz ((data (sys_slurp_file file))
(l1 (regex_split ",|\n" (Str data)))
(l2 (map (lambda (e) (trim e)) l1)))
(println l2)
void)))
($ (csv_dump "/tmp/test.csv"))
(sys:load "libs/core/math.xtm")
(bind-func csv_4x4matrix_dump
(lambda (file)
(letz ((data (sys_slurp_file file))
(l1 (regex_split ",|\n" (Str data)))
(l2 (map (lambda (e) (atof (cstring (trim e)))) l1))
(num_mats (/ (length l2) 16))
(matrix:double* (alloc 16))
(i 0) (k 0))
(if (<> (% (length l2) 16) 0)
(println "Poorly formed matrix CSV file - must be modulo 16 (i.e. 4x4):" (Str file))
(begin
(dotimes (i num_mats)
(dotimes (k 16)
(pset! matrix k (nth l2 (+ k (* i 16)))))
(println "mat:" i)
(mprint matrix 4 4)
(println))
void)))))
($ (csv_4x4matrix_dump "/tmp/matrix_test.csv"))