class Rake::LinkedList

def self.make(*args)

polymorphic
Make a list out of the given arguments. This method is
def self.make(*args)
  # return an EmptyLinkedList if there are no arguments
  return empty if !args || args.empty?
  # build a LinkedList by starting at the tail and iterating
  # through each argument
  # inject takes an EmptyLinkedList to start
  args.reverse.inject(empty) do |list, item|
    list = cons(item, list)
    list # return the newly created list for each item in the block
  end
end