Kwfuns

Build Status Hex.pm

Macros to create functions with syntax based keyword parameters with default values

defkw

Defines a function with defaulted keyword parameters that are syntactically available in the same way as positional parameters.

defkw multiply_sum( factor, lhs: 0, rhs: 1 ) do
factor * ( lhs + rhs )
end

would compile to the following code

def multiply_sum( factor, keywords // [] ) do
%{lhs: lhs, rhs: rhs} =
Keyword.merge( [lhs: 0, rhs: 0], keywords )
|> Enum.into( %{} )
factor * ( lhs + rhs )
end

defkwp

Same as defkw above but defining a private function.

LICENSE

Same as Elixir, which is Apache 2.0, please refer to LICENSE for details.

Installation

If available in Hex, the package can be installed as:

  1. Add kwfuns to your list of dependencies in mix.exs:

    def deps do [{:kwfuns, "~> 0.0.1"}] end

  2. Ensure kwfuns is started before your application:

    def application do [applications: [:kwfuns]] end