потому что Clojure пытается «разрешить» первый элемент любого списка в качестве имени функции
когда вы в последнем отчете вызываете функцию печати, она вызывается с одним аргументом
list (foo), который интерпретируется как вызов функции foo. пока все хорошо.
но функция foo возвращает список ("bar"), который не в порядке .. он интерпретируется как вызов функции "bar", которая не разрешена ..
если foo похож (defn foo [] «bar»), то он будет работать, потому что print не получит («bar»), а просто «bar»
и сделать печать