Параметры в функциях Clojure - PullRequest
4 голосов
/ 23 августа 2010

У меня есть функция, которая работает следующим образом:

(the-function [one] [two] [three])

, и мне нужна функция, которая вызывает функцию.

Я пробовал с [& args], но это не похожечтобы передать аргументы правильно.

Если это помогает, функция похожа на таблицу создания MySQL, найденную здесь

РЕДАКТИРОВАТЬ: моя функция, которая не работает,как это:

(defn my-function [& args]
   (the-function args))

И я хочу иметь возможность сделать:

(my-function [one] [two] [three])

и вызвать функцию с этими аргументами

Ответы [ 3 ]

4 голосов
/ 23 августа 2010

Хорошо, вы хотите вот что:

(defn my-function [& args] (apply the-function args))

Применить применяет функцию к набору аргументов в последовательности, как если бы они были отдельными аргументами.

2 голосов
/ 23 августа 2010

apply - это функция, вызывающая функцию, например:

(defn add-three [x y z] (+ x y z))

(add-three 1 2 3)
(apply add-three '(1 2 3))

Это помогает?

0 голосов
/ 23 августа 2010

Я не уверен, что понимаю ваш вопрос.

Разрушает ли вам то, что вам нужно?

(defn the-function [[one two three]]
  (println (str one two three)))

(defn myfunction [& args]
   (the-function args))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...