anchor.diff:  
   (defmacro points-average (pn num)
     "pn should be a list of lists, num means how many digits you want to calculate to average value. For example if pn is (list '(2 3 4) '(1 2 3)), result equal (3/2 5/2 7/2) if num is 3, the result will be (3/2 5/2) if num is 2"
  -  (let* ((arrayNum (gensym))
  -         (len (gensym))
  -         (arrayList (gensym)))
  +  (with-gensyms (arrayNum len arrayList)
       `(let* ((,len ,num)
               (,arrayList ,pn)
               (,arrayNum (length ,arrayList)))
  
positive.code: 
  (load "./package.lisp")
  (in-package #:toolsbox)
  
  (defun parse-string-to-float (line)
    "read the data from file, each line is x1 x2 ... y1, no comma in data"
  
negative.code:                         (aref ,mm ,ii id))))))
  
  (defmacro array-multiply (array1 array2)
    (with-gensyms (arr1 arr2)
      `(let ((,arr1 ,array1)
             (,arr2 ,array2))
         (loop for i across ,arr1
  