Cards.shuffle returning nil

deck = ["Ace", "Two", "Three"]
Cards.shuffle(deck)

where in Cards module I have

 def shuffle(deck) do
      Enum.shuffle(deck)
  end

but returns nil.

Why?

Works for me. What have you tried to debug it?
Have you tried an IO.inspect(deck) in your Cards.shuffle function to make sure deck is getting passed intact? Have you tried Enum.shuffle([“Ace”, “Two”, “Three”])?

3 Likes

Worked for me,

iex(5)> defmodule Card do
...(5)>  def shuffle(deck) do
...(5)>   Enum.shuffle(deck) 
...(5)> end
...(5)> end
{:module, Card,
 <<70, 79, 82, 49, 0, 0, 4, 104, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 138,
   0, 0, 0, 14, 11, 69, 108, 105, 120, 105, 114, 46, 67, 97, 114, 100, 8, 95,
   95, 105, 110, 102, 111, 95, 95, 7, 99, ...>>, {:shuffle, 1}}
iex(6)> Ca   
Calendar           Card               CaseClauseError    
iex(6)> Card.shuffle(["Two", "Three", "-Ace"])
["Three", "Two", "-Ace"]
iex(7)> deck = ["Two", "Three", "-Ace"]
["Two", "Three", "-Ace"]
iex(8)> Card.shuffle(deck)                    
["Two", "Three", "-Ace"]
iex(9)> Card.shuffle(deck)
["Three", "Two", "-Ace"]
iex(10)> Card.shuffle(deck)
["Two", "-Ace", "Three"]
iex(11)> Card.shuffle(deck)
["Two", "-Ace", "Three"]
iex(12)> Card.shuffle(deck)
["Three", "-Ace", "Two"]
3 Likes

For me, going through the Grider course, I had forgotten to recompile