Я читаю книгу для домашнего задания и понимаю, что использование #' рассматривает переменную как функцию, а не как переменную. Но я немного туманно на FUNCALL. Я понимаю, что lisp делает объект из переменных, так что имя функции просто «указатель» (может быть, плохое слово, но, надеюсь, вы понимаете, что я имею в виду), и в этом случае вы используете #' для его вызова или funcall единственный способ вызвать их? бывший.
(defun plot (fn min max step)
(loop for i from min to max by step do
(loop repeat (funcall fn i) do (format t "*"))
(format t "~%")))
не мог бы я просто сделать:
(defun plot (fn min max step)
(loop for i from min to max by step do
(loop repeat #'(fn i) do (format t "*"))
(format t "~%")))
Думаю, моя путаница заключается в том, что именно содержится в именах функций. Когда я читал книгу, в ней говорилось, что значение переменной — это то, что будет объектом функции.