class Campa::Lisp::Car

Public Class Methods

new() click to toggle source
# File lib/campa/lisp/car.rb, line 4
def initialize
  @printer = Printer.new
end

Public Instance Methods

call(list) click to toggle source
# File lib/campa/lisp/car.rb, line 8
def call(list)
  return nil if list.nil? || list == List::EMPTY
  raise illegal_argument(list) if !list.is_a?(List)

  list.head
end

Private Instance Methods

illegal_argument(list) click to toggle source
# File lib/campa/lisp/car.rb, line 17
def illegal_argument(list)
  Error::IllegalArgument.new(@printer.call(list), "list")
end