erp12.fijit.function
Utilities for constructing instances of scala’s Function*
traits.
This namespace defines a suite or types (via deftype
) that each correspond to a Scala function with a different arity. They all are constructed with a single argument value: a clojure function with the same arity.
Each type also implements Serializable
and clojure.lang.IFn
so that instances can be called as normal Clojure functions.
->fn0
(->fn0 f)
Wraps a Clojure function with arity 0 in a Scala Function0
.
->fn1
(->fn1 f)
Wraps a Clojure function with arity 1 in a Scala Function1
.
->fn2
(->fn2 f)
Wraps a Clojure function with arity 2 in a Scala Function2
.
->fn3
(->fn3 f)
Wraps a Clojure function with arity 3 in a Scala Function3
.
->fn4
(->fn4 f)
Wraps a Clojure function with arity 4 in a Scala Function4
.
->fn5
(->fn5 f)
Wraps a Clojure function with arity 5 in a Scala Function5
.
scala-fn
macro
(scala-fn params & body)
Creates a Scala function using idiomatic Clojure syntax.
Scala utilizes a different function type (expressed as a trait) depending on the number of arguments, and thus the type of the returned value will different depending on the arity of the function being defined.