I want to know if these two definitions of nth are equal:

I. is defined as macro:

```
(defmacro -nth (n lst)
  (defun f (n1 lst1)
    (cond ((eql n1 0) lst1)
      (t `(cdr ,(f (- n1 1) lst1)))))
  `(car ,(f n lst)))

```

II. is defined as a bunch of functions:

```
(defun f (n lst)
  (cond ((eql n 0) lst)
        (t `(cdr ,(f (- n 1) lst)))))
(defun f1 (n lst)
  `(car ,(f n `',lst)))
(defun --nth (n lst)
  (eval (f1 n lst)))

```

Am i get the right idea? Is macro definition is evaluating of expression, constructed in its body?