2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
31
Task/Optional-parameters/Elixir/optional-parameters.elixir
Normal file
31
Task/Optional-parameters/Elixir/optional-parameters.elixir
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
defmodule Optional_parameters do
|
||||
def sort( table, options\\[] ) do
|
||||
options = options ++ [ ordering: :lexicographic, column: 0, reverse: false ]
|
||||
ordering = options[ :ordering ]
|
||||
column = options[ :column ]
|
||||
reverse = options[ :reverse ]
|
||||
sorted = sort( table, ordering, column )
|
||||
if reverse, do: Enum.reverse( sorted ), else: sorted
|
||||
end
|
||||
|
||||
defp sort( table, :lexicographic, column ) do
|
||||
Enum.sort_by( table, &elem( &1, column ) )
|
||||
end
|
||||
defp sort( table, :numeric, column ) do
|
||||
Enum.sort_by( table, &elem( &1, column ) |> String.to_integer )
|
||||
end
|
||||
|
||||
def task do
|
||||
table = [ { "123", "456", "0789" },
|
||||
{ "456", "0789", "123" },
|
||||
{ "0789", "123", "456" } ]
|
||||
IO.write "sort defaults "; IO.inspect sort( table )
|
||||
IO.write " & reverse "; IO.inspect sort( table, reverse: true )
|
||||
IO.write "sort column 2 "; IO.inspect sort( table, column: 2)
|
||||
IO.write " & reverse "; IO.inspect sort( table, column: 2, reverse: true)
|
||||
IO.write "sort numeric "; IO.inspect sort( table, ordering: :numeric)
|
||||
IO.write " & reverse "; IO.inspect sort( table, ordering: :numeric, reverse: true)
|
||||
end
|
||||
end
|
||||
|
||||
Optional_parameters.task
|
||||
Loading…
Add table
Add a link
Reference in a new issue