Если вы замените вызов метода в вашей версии целым числом, это то, что у вас логически:
(def n-cpu (4))
Clojure не может обработать список (4)
, поскольку первый элемент в списке без кавычекдолжен быть функцией.В этом случае первый элемент является целым числом, а Clojure не рассматривает целые числа как функции.Если вы удалите ненужные скобки, ваше определение var будет выглядеть так:
(def n-cpu (.availableProcessors (Runtime/getRuntime)))
Обратите внимание, что если вы замените вызов метода целым числом, оно станет (def n-cpu 4)
?