View Source Quark.Partial (Quark v2.3.3-doma)
Provide curried functions, that can also be partially bound without dot notation. Partially applying a function will always return a fully-curried function.
Please note that these will use all of the arities up to the defined function.
defpartial foo(a, b, c), do: a + b + c #=> foo/0, foo/1, foo/2, and foo/3
If you need to use an arity in the range below the original
function, fall back to
defcurry/2 and partially apply manually.
Link to this section Summary
Link to this section Functions
A convenience on
defcurry/2. Generates a series of partially-bound
applications of a fully-curried function, for all arities at and below
the user-specified arity.
defpartial add(a,b), do: a + b #=> add/0, add/1, add/2.
defmodule A do defpartial minus(a, b, c), do: a - b - c end A.minus(3, 2, 1) #=> 0 A.minus.(3).(2).(1) #=> 0 below_ten = A.minus(10) below_ten.(2).(1) #=> 7 below_five = A.minus(20, 15) below_five.(2) #=> 3
defpartial/2, but generates private functions.