Встраивание функции с макросами Clojure

Скорее из любопытства, что что-нибудь еще (но с ожиданием, что это может иногда быть полезным трюком для настройки производительности), можно ли использовать макросы Clojure для "встраивания" существующая функция?

т.е. я хотел бы иметь возможность сделать что-то вроде:

(defn my-function [a b] (+ a b))

(defn add-3-numbers [a b c] 
  (inline (my-function 
    a 
    (inline (my-function 
      b 
      c)))))

И заставить ее создавать (во время компиляции) точно такую ​​же функцию, как если бы я сам встроил дополнения, например:

(defn add-3-numbers [a b c] 
  (+ a (+ b c)))
11
задан mikera 20 December 2010 в 12:35
поделиться