area: (x, y, x1, y1) -> (x - x1) * (x - y1) x: y: 10 x1: y1: 20 puts area(x, y, x1, y1) is 100 puts(area(x, y, x1, y1) is 100) puts(area( x y x1 y1 ) is 100) # Arguments are turned into arrays. curried: -> puts area.apply(this, arguments.concat(20, 20)) is 100 curried 10, 10 # Arguments is not a special keyword -- it can be assigned to: func: -> arguments: 25 arguments puts func(100) is 25 # Arguments can be accessed as a property. this.arguments: 10 puts @arguments is 10