1
 2
 3
 4
 5
 6
 7
 8
 9
10
(use gauche.sequence)
(use util.list)
(use srfi-13)

(define (divid n str)
  (values-ref
   (map-accum (lambda (n s) (values (string-take s n) (string-drop s n)))
              str
              (apply map + (slices (make-list (string-length str) 1) n #t 0)))
   0))