functor - pannous/angle GitHub Wiki

A functor is a higher order function which takes code blocks (closures) or function pointers as argument.

They can be evaluated with () or !

E.g.

map function on list := for each l in list: function!(l)
map square on [1 2 3] == [1 4 9]

IF condition:block then:block otherwise:block?
  if(condition()) : then()
  else otherwise()
end

redefining if. calling optional blocks results in nop_ if empty