7.4.4 Formal parameters
A lambda expression has an associated integer, n, called its valence, which counts the number of referents that have been replaced with lambdas. The number n may be 0 or higher. A lambda expression with n replacements is called an n-adic lambda expression. Again, the adjectives "monadic", "dyadic", and "triadic" are used to described 1-adic, 2-adic, and 3-adic lambda expressions.
An n-adic lambda expression has n formal parameters numbered 1, 2, ..., n. The formal parameters of a lambda expression are the placeholders in the expression, referred to by s or expressions like ?x, ?y, ?z, etc.
Each formal parameter is a concept with a type and a referent. The type of the formal parameter is the type of the concept whose referent has been replaced with a .
For example, the following lambda expression can be used to define a relation, GoingToAalborg:
Defining label, bound label
This definition has two parts:
Note that in the name-part, the formal parameter is denoted by '*x', while in the definition-part, the formal parameter is denoted by '?x'. The label '*x' is called the defining label, while '?x' is called the bound label.
This notation is also used with coreference links.
One might use this relation as follows:
[Professor: Alfred]<-(GoingToAalborg) "Alfred the professor is going to Aalborg"
Here, the concept
is the actual parameter to the lambda expression.
The relation GoingToAalborg can be expanded to its defining lambda expression:
[Professor: Alfred]<-([Person: ?x]<-(Agnt)<-[Go]->(Dest)- ->[City: Aalborg]) "Alfred the professor is going to Aalborg"
The formal parameter ("[Professor: Alfred]") can then be substituted for the lambda to which it refers:
Note that "Professor", which is the type of the concept of the actual parameter, is a subtype of "Person", which is the type of the concept which the actual parameter replaces. We see then, that the type of the actual parameter has to be a subtype of the type of the formal parameter. It need not be a proper subtype, as in this usage, but it must be a subtype.
Prev: 7.4.3 Example
Up: 7.4 Lambda expressions (optional)
Next: 7.4.5 Signature