def foo()
  puts 2
  2
end

foo()


# variable number of arguments!
def var_arg (mandatory, *optional)
  puts "mandatory: #{mandatory}"
  optional.each do |e| puts e end
#  puts optional
end

# important: no spaces between method name and parentheses
var_arg(1,"dummy",3)
# omit parentheses
var_arg 3, 4, 5 

# This is the origin of "Domain-specific language design" 
# in Ruby

# can method names start with constants?
Const_name_method=1
def Const_name_method()
  puts 2
  2
end

Const_name_method
