Skip to content

pragdave/mdef

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultiDef—Define a function with multiple heads

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

Use it like this:

defmodule Test do

  import MultiDef

  mdef fib do
    0 -> 0
    1 -> 1
    n -> fib(n-1) + fib(n-1)
  end
end
IO.puts Test.fib(20)

When clauses can be used:

defmodule Test do

  import MultiDef

  mdef fib do
    0 -> 0
    1 -> 1
    n when n > 0 -> fib(n-1) + fib(n-1)
  end
end
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, dave@pragprog.com

Licensed under the same terms as Elixir

About

Easily define multiple function heads in elixir

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages