- ...objects
- Currently, ``object'' is an overloaded term in
computer science. To many people it implies a conceptual complex of
classes, methods and inheritance. We are not implying this-and
Chapter 3 will discuss our approach to
``object-orientation''. The reader can take the term in an uninterpreted
way-such as ``point'' in geometry.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...define
- The Scheme language also uses the
define token as a naming convention for giving names to
3#3-terms-much as Lisp uses defun. The Noos usage of
define is not to be taken as equivalent to that of Scheme.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...position
- This is the main difference between feature terms and
other terms like first-order terms and 3#3-terms, see
Chapter 3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...10#10
- Notice that in
defining John the mother slot is overridden by the factual
description that Mary is the mother. Because of this overriding
the mother of John need not obey the constraint in mother
of person
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...root
- The expression (>>) plays a
similar role to that of the self variable in a number of
object-oriented languages. However, (>>) does not require a special
semantics (as late-binding semantics for methods with respect to the
self variable).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...false
- Both true and false are the
boolean constants in the Noos language.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...state
- Lisp and Scheme are not purely declarative languages:
destructive assignment destroys transparential referency and thus stateful
computation is needed to be packaged inside a closure as the set of
bindings that wrap a particular function.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...reified
- The idiom (reify of reference) may remind the
reader of the Lisp idiom based on pseudoquoting (the backquote syntax).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...more
- When using
together metalevels and refinement we have to take into account that
refinement is prior to metalevel. Intuitively, refinement is
direct and metalevel involves performing some inference. The reason is
that (1) refinement directly copies (albeit in a lazy way) the definitions
of the constituent and that (2) metalevel inference only takes place
whenever no definition for a feature is specified. In other words, if
there are two different definitions for a feature, one in a constituent and
one in the metalevel, only the definition on the constituent will be used
and the metalevel will not be used for that feature.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...methods
- In this sense, metalevel methods can be seen as higher
order-functions: functions that return other functions. Notice, however,
that clustering them together in metalevels offers a modular
philosophy to the use of higher order-functions that is idiosyncratic
to Noos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...man
- These methods can take into account nationality of
persons to provide a correct answer.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...tower
- Any other default would be useless since
the first one would act on all unspecified features.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...terms
- Intuitively, a term 64#64 subsumes a term 65#65, written 66#66, when all that is true of 64#64 is also true of 65#65-i.
e. that all information contained in 64#64 is also contained of 65#65,
that may have more information, but not less or no contradictory
information. More on Chapter 3.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.