2016-02-09 3 views
1

, когда я звоню ту же функцию, несколько раз, каждый раз с разными аргументами прошли, я хожу так:вызова и ту же функцию несколько раз с разными аргументами

(doseq [[a b c] [[arg1a arg2a arg3a] [arg1b arg2b arg3b] [...]] 
    (myfunction a b c)) 

есть более удобный способ сделать это?

+4

Это может помочь, если вы укажете, что вы считаете неудобным. Каковы параметры проблемы? Нужно ли указывать каждый аргумент вручную или вы каким-то образом их генерируете? Логически, если вы должны указывать каждый аргумент вручную, то возможностей для улучшения не так много: накладные расходы на ваш текущий метод составляют около 10-20 символов, не считая пробела. – galdre

ответ

3

Один из вариантов заключается в использовании apply. Я действительно не знаю, хотя если это гораздо удобнее:

(doseq [args arg-seq] 
    (apply myfunction args)) 
+0

Да, это выглядит хорошо. это улучшение, потому что оно работает для произвольных явлений. –

Смежные вопросы