- Up - | Next >> |
A functor is data-structure that describes a module. In the same way that proc {Foo} ... end
constructs a procedure, functor Foo ... end
constructs a functor. For example:
declare
functor Foo
export
greetings : Greetings
define
Greetings = 'hello world'
end
Let's take a look at this value by invoking {Inspect Foo}
:
What we see is that a functor is an Oz value known as a chunk. A chunk is like a record in that it has features, but unlike records which have structural equality, chunks have token equality; that is, each chunk is unique an distinct from any other chunk, even if they have the same features and values.
- Up - | Next >> |