Paste number 96735: defin fitness cases

Paste number 96735: defin fitness cases
Pasted by: bytecolor
When:1 year, 10 months ago
Share:Tweet this! | http://paste.lisp.org/+22N3
Channel:#lisp
Paste contents:
Raw Source | XML | Display As
(defstruct 11-MULTIPLEXER-fitness-case
  input-bits                          ; list of t or nil
  output-bit)                         ; t or nil

(defun define-fitness-cases-for-11-MULTIPLEXER ()
  (format t "~&Fitness cases")
  (let ((index 0)
        (all-cases (make-array gp:*number-of-fitness-cases*)))
    (loop
       for i from 0 below gp:*number-of-fitness-cases*
       do
       (let ((fitness-case (make-11-MULTIPLEXER-fitness-case))
             (bits (map 'list (lambda (c) (if (eq c #\1) t nil))
                        (format nil "~11,'0B" i))))
         (setf (11-MULTIPLEXER-fitness-case-input-bits fitness-case) bits)
         (destructuring-bind (a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0)
             bits
           (setf (11-MULTIPLEXER-fitness-case-output-bit fitness-case)
                 (if a2 (if a1 d6 d4)
                    (if a2 d4 (if a1 d2 (if a2 d7 d0)))))
           (setf (aref all-cases index) fitness-case)
           (incf index)
           (format t "~&~5,D  ~{~:[0~;1~]~}  ~:[0~;1~]"
                   index
                   (11-MULTIPLEXER-fitness-case-input-bits fitness-case)
                   (11-MULTIPLEXER-fitness-case-output-bit fitness-case)))))
    all-cases))

This paste has no annotations.

Colorize as:
Show Line Numbers

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.