Animals (animals v0.1.0)
Hello
Summary
Functions
contains? takes a list of zoo animals and a single animal and returns a boolean as to whether or not the list contains the given animal.
create_zoo/0
returns a list of zoo animals
Hello world.
load/1
takes filename and returns a list of animals if the file exists
randomise/1
takes a list of zoo animals and returns a new randomised list with
the same elements as the first.
save/2
takes a list of zoo animals and a filename and saves the list to that file
see_animals/2
takes a list of zoo animals and the number of animals that
you want to see and then returns a list
selection/1
takes a number, creates a zoo, randomises it and then returns a list
of animals of length selected
Functions
contains?(zoo, animal)
contains? takes a list of zoo animals and a single animal and returns a boolean as to whether or not the list contains the given animal.
Examples
iex> zoo = Animals.create_zoo
iex> Animals.contains?(zoo, "gorilla")
true
create_zoo()
create_zoo/0
returns a list of zoo animals
Examples
iex> Animals.create_zoo
["lion", "tiger", "gorilla", "elephant", "monkey", "giraffe"]
hello()
Hello world.
Examples
iex> Animals.hello()
:world
load(filename)
load/1
takes filename and returns a list of animals if the file exists
Note: here we are running a case expression on the result of File.read(filename)
- if we receive an :ok then we want to return the list
- if we receive an error then we want to give the user an error-friendly message
Examples
iex> Animals.load("my_animals")
["lion", "tiger", "gorilla", "elephant", "monkey", "giraffe"]
iex> Animals.load("aglkjhdfg")
"File does not exist"
randomise(zoo)
randomise/1
takes a list of zoo animals and returns a new randomised list with
the same elements as the first.
Examples
iex> zoo = Animals.create_zoo
iex> Animals.randomise(zoo)
save(zoo, filename)
save/2
takes a list of zoo animals and a filename and saves the list to that file
Examples
iex> zoo = Animals.create_zoo
iex> Animals.save(zoo, "my_animals")
:ok
see_animals(zoo, count)
see_animals/2
takes a list of zoo animals and the number of animals that
you want to see and then returns a list
Note:
Enum.split
returns a tuple so we have to pattern match on the result to get the value we want out.
Examples
iex> zoo = Animals.create_zoo
iex> Animals.see_animals(zoo, 2)
["monkey", "giraffe"]
selection(number_of_animals)
selection/1
takes a number, creates a zoo, randomises it and then returns a list
of animals of length selected
Note: We are using the pipe operator here. It takes the value returned from the expression and passes it down as the first argument in the expression below.
see_animals
takes two arguments but only one needs to be specified as the first is provided by the pipe operator
Examples
iex> Animals.selection(2)