anchor.diff:           (ar (make-array len :initial-contents ll)))
       ar))
   
  -(defun read-data ()
  +(defun read-data (path)
     (let ((result))
  -    (with-open-file (f #P"./testData.txt"
  +    (with-open-file (f path
                          :direction :input)
         (declare (inline *list-to-array))
         (do* ((l (read-line f) (read-line f nil))
  
positive.code:     (loop for r from 0 to rowNum for temp = (array-slice X r) sum
           (expt
            (- (array-multiply temp theta) (elt y r)) 2)))
      result))
  
  (defun partial-derivative (X theta y)
    "X is a r*c matrix"
  
negative.code: (defvar *X*)
  (setf *X*
        (let ((temp
               (loop for ar in (read-data "./testData.txt") collect
                    (list 1 (elt ar 0)))))
          (make-array (list (length temp) (length (car temp))) :initial-contents temp)))
  
  (defvar *y*)
  (setf *y*
        (loop for ar in (read-data "./testData.txt") collect
             (elt ar 1)))
  
  (defvar *theta*)
  (setf *theta* (make-array 2 :initial-element 0))
  
  (compute-cost *X* *theta* *y*)
  (gradient-descent *X* *theta* *y* 0.01 1500)
  