Thursday, January 27, 2011

Strange boo language syntax

I've run into a strange syntax in Boo Language Guide :

setter = { value | a = value }

What does the | operator mean?

  • Well, having never used Boo, my (educated) guess is that it's for passing parameter to the closure lambda-style functions. In this case, { p | C } refers to an anonymous function taking a single parameter bound to p within the code C.

  • The documentation of Boo seems to be lacking in this area -- it seems that

    setter = { value | a = value }
    

    is shorthand for

    setter = def(value):
        a = value
    
    From dF
  • Adam is correct. The point of the example is to show that lambdas in boo have read and write access to enclosing scope.

  • That syntax for specifying code blocks (anonymous functions) has been borrowed from Ruby and Smalltalk

0 comments:

Post a Comment