;; add expects 2 arguments. Its arity is 2.
(defn add [x y] (+ x y))
(println (add 2 2))
;; + itself is a function, and it can have any number of arguments.
(+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) ;; and so on...
;; foo has variable arity.
(defn foo
([] ; if this
function gets no arguments...
(println "Lisa needs braces!")) ; do this.
([arg1
] ; if this
function gets 1 argument...
(println "Dental plan!"))) ; do this instead!
(println (foo))
(println (foo "this is a placeholder argument."))
OzsgYWRkIGV4cGVjdHMgMiBhcmd1bWVudHMuIEl0cyBhcml0eSBpcyAyLgooZGVmbiBhZGQgW3ggeV0gKCsgeCB5KSkKCihwcmludGxuIChhZGQgMiAyKSkKCjs7ICsgaXRzZWxmIGlzIGEgZnVuY3Rpb24sIGFuZCBpdCBjYW4gaGF2ZSBhbnkgbnVtYmVyIG9mIGFyZ3VtZW50cy4KKCsgMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMTQgMTUgMTYpIDs7IGFuZCBzbyBvbi4uLgoKOzsgZm9vIGhhcyB2YXJpYWJsZSBhcml0eS4KKGRlZm4gZm9vCiAgKFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgaWYgdGhpcyBmdW5jdGlvbiBnZXRzIG5vIGFyZ3VtZW50cy4uLgogICAgKHByaW50bG4gIkxpc2EgbmVlZHMgYnJhY2VzISIpKSA7IGRvIHRoaXMuCiAgKFthcmcxXSAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgaWYgdGhpcyBmdW5jdGlvbiBnZXRzIDEgYXJndW1lbnQuLi4KICAgIChwcmludGxuICJEZW50YWwgcGxhbiEiKSkpICAgICAgOyBkbyB0aGlzIGluc3RlYWQhCgoocHJpbnRsbiAoZm9vKSkKCihwcmludGxuIChmb28gInRoaXMgaXMgYSBwbGFjZWhvbGRlciBhcmd1bWVudC4iKSk=