Использование Clojure в Repl без открывающих и закрывающих скобок - PullRequest
0 голосов
/ 15 апреля 2020

Мне любопытно, можно ли написать функцию в clojure, которую можно вызывать из repl без открывающих и закрывающих скобок. Я, например, всегда использую следующую функцию:

(defn ll [] (load-file "D:\\work.clj"))

Мне нужно вызывать это с помощью (ll), но это пригодится, если потребуется только ll.

[Моя идея взята из autocad / autolisp. Там я могу определить такую ​​функцию, как (defun c:somecommand () . . )

С этого момента я могу использовать некоторую команду в командной строке (из-за 'c:' перед командой. Без скобок.]

1 Ответ

1 голос
/ 15 апреля 2020

Вы могли бы, но не должны;)

Вот пример, который неправильно использует (IMHO) reify, чтобы переопределить .toString, чтобы иметь побочный эффект.

(def m (reify Object (toString [this] (println "Evil side effect") "foo")))
#'user/m
user=> m
Evil side effect
#object[user$reify__151 0x3350ebdd "foo"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...