Ответ 1
Я удивлен, что этого еще нет. Предполагается, что записи "полная реализация постоянной карты" . Поэтому, чтобы ответить на ваш вопрос, я ожидаю, что это будет функция его ключей, как карта; все остальное было бы удивительно.
Предположим, что у меня есть запись, которая является "функциональной", по крайней мере, в том смысле, что она представляет собой операцию, которая может быть применена к некоторым аргументам.
Я могу заставить его работать как функция, реализуя clojure.lang.IFn
, что-то вроде:
(defrecord Func [f x]
clojure.lang.IFn
(invoke [this arg]
(f x arg))
(applyTo [this args]
(apply f x args)))
((->Func + 7) 1)
=> 8
(да, я знаю, что я только что переопределил более низкую версию partial
.... это просто пример:-))
Является ли практика записи clojure.lang.IFn
хорошей практикой или нет?
Любые подводные камни к этому подходу?
Я удивлен, что этого еще нет. Предполагается, что записи "полная реализация постоянной карты" . Поэтому, чтобы ответить на ваш вопрос, я ожидаю, что это будет функция его ключей, как карта; все остальное было бы удивительно.