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

Link to this function

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/0 returns a list of zoo animals

Examples

iex> Animals.create_zoo
["lion", "tiger", "gorilla", "elephant", "monkey", "giraffe"]

Hello world.

Examples

iex> Animals.hello()
:world

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/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)
Link to this function

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
Link to this function

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"]
Link to this function

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)