Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pragdave/mdef

Easily define multiple function heads in elixir
https://github.com/pragdave/mdef

Last synced: 7 days ago
JSON representation

Easily define multiple function heads in elixir

Awesome Lists containing this project

README

        

MultiDef—Define a function with multiple heads
==============================================

Add the dependency `{:multidef, "> 0.0.0"}` to mix.exs.

Use it like this:

```elixir
defmodule Test do

import MultiDef

mdef fib do
0 -> 0
1 -> 1
n -> fib(n-1) + fib(n-1)
end
end
```

```elixir
IO.puts Test.fib(20)
```

When clauses can be used:

```elixir
defmodule Test do

import MultiDef

mdef fib do
0 -> 0
1 -> 1
n when n > 0 -> fib(n-1) + fib(n-1)
end
end
```

```elixir
IO.puts Test.fib(20)
```

Does not support default arguments.

Does not enforce that all heads have the same arity (deliberately).

----

Copyright © 2014 Dave Thomas, The Pragmatic Programmers
@/+pragdave, [email protected]

Licensed under the same terms as Elixir