I've run into a strange syntax in Boo Language Guide :
setter = { value | a = value }
What does the | operator mean?
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
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