anchor.diff:  		    (length (first lst)))
   	      :initial-contents lst))
   
  -(defun parse-number (str &key (start 0) (end (length str)))
  -  )
  +;;; Only when we need to coerce ratio into double-float...
  +;;; Or I will keep floatint-point ratio...
  +(defun parse-decimal (str &key (start 0) (end (length str)))
  +  (let ((sum 0)
  +	(digit 0)
  +	(in-float nil)
  +	(float-depth 0))
  +    (do ((point start (1+ point)))
  +	((>= point end))
  +      (cond ((and (>= (char-code (char str point)) (char-code #\0))
  +		  (<= (char-code (char str point)) (char-code #\9)))
  +	     (progn
  +	       (setf digit (- (char-code (char str point)) 48)
  +		     sum (+ (* sum 10) digit))
  +	       (if in-float
  +		   (incf float-depth))))
  +	    ((= (char-code (char str point)) (char-code #\.))
  +	     (if in-float
  +		 (error "Invalid number format.")
  +		 (setf in-float t)))
  +	    (t
  +	     (error "Invalid number format."))))
  +    (/ sum (expt 10 float-depth))))
   
   (defun delimiterp (c)
     (or (char= c #\Space)
  
positive.code: (defun make-array-per-space (str)
    (let ((nums nil))
      (dolist (num (split-per-space str))
        (push (parse-number num) nums))
      (list-array (reverse nums))))
  
  (defun make-matrix-per-space (str-lst)
  
negative.code:       (progn
  	(setf nums nil)
  	(dolist (num (split-per-space str))
  	  (push (parse-decimal num) nums))
  	(progn
  	  (setf nums (reverse nums))
  	  (push nums nums-m))))
  