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

В моем случае я заставил его работать таким образом (в дополнение к настройке AutoSizeRowsMode для AllCells и AutoSizeColumnsMode для AllCells):

dgvTwinReverb.Columns[PEANUT_GALLERY_COLUMN].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
dgvTwinReverb.Columns[PEANUT_GALLERY_COLUMN].MinimumWidth = PEANUT_GALLERY_COLUMN_DESIRED_WIDTH;
23
задан Ashley Williams 3 October 2010 в 09:25
поделиться

2 ответа

Простой ответ:

(defn call [this & that]
  (apply (resolve (symbol this)) that))

(call "zero?" 1) 
;=> false

Просто для удовольствия:

(defn call [this & that]
  (cond 
   (string? this) (apply (resolve (symbol this)) that)
   (fn? this)     (apply this that)
   :else          (conj that this)))

(call "+" 1 2 3) ;=> 6
(call + 1 2 3)   ;=> 6
(call 1 2 3)     ;=> (1 2 3)
15
ответ дан 29 November 2019 в 01:54
поделиться

Что-то вроде:

(defn call [^String nm & args]
    (when-let [fun (ns-resolve *ns* (symbol nm))]
        (apply fun args)))
28
ответ дан 29 November 2019 в 01:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: