(defmacro memfn-varargs [name]
`(fn [target# args#]
(condp = (count args#)
0 (. target# (~name))
1 (. target# (~name (first args#)))
2 (. target# (~name (first args#) (second args#)))
3 (. target# (~name (first args#) (second args#) (nth args# 2)))
4 (. target# (~name (first args#) (second args#) (nth args# 2) (nth args# 3)))
5 (. target# (~name (first args#) (second args#) (nth args# 2) (nth args# 3) (nth args# 4)))
(throw
(java.lang.IllegalArgumentException.
(str
"too many arguments passed. Limit 5, passed " (count args#)))))))
Used in 0 other vars
Comments top
No comments for memfn-varargs. Log in to add a comment.