#lang scheme

;;Módulo para generar una población inicial
;;;POBLACION INICIAL
;;proc-gen será el procedimiento que genera un individuo
;;n-elem=length-cromosoma. proc-gen=gen-estado
(define gen-individuo
  (lambda (n-elem proc-gen)
    (let go ((i 0)
             (j n-elem))
      (if (= i j)
          '()
          (cons
           (proc-gen)
           (go (add1 i) j))) )))

;;genera la población. n-elem=length-población; n-ind=length-cromosoma; proc=proc que devuelve un gen
(define gen-poblacion
  (lambda (n-elem n-ind proc)
    (let go ((i 0)
             (j n-elem))
      (if (= i j)
          '()
          (cons
           (gen-individuo n-ind proc)
           (go (add1 i) j))) )))

(provide
 gen-poblacion
 )