;;; -*- Mode:LISP; Package:USER; Base:10; Readtable:ZL -*- ;;; To fix a floating-point array to un-EQify its elements, try like: ;;; (setq arr-1 (cl:map 'array 'float arr-1)) ;;; This illustrates ways you might get into a mess like that. (defvar arr-1 (make-array 10)) (defvar arr-exp (make-array 10)) ;;; This init function generates EQ elements (defun init1() (dotimes(i 10 arr-1) (setf(aref arr-1 i) 10.0))) ;;; So does this!?! (defun init1() (fillarray arr-1 (ncons(float 10.0)))) ;;; This version works?!? (defun init1() (dotimes(i 10 arr-1) (setf(aref arr-1 i) (float 10.0)))) (defun init2() (dotimes(i 10 arr-exp) (setf(aref arr-exp i) (+ 1000 i)))) (defun map-expos() (init1) (init2) (dotimes(i 10 arr-1) (setf(si:%single-float-exponent (aref arr-1 i)) (aref arr-exp i))))