next up previous contents
Next: Procedural Types Up: Types in Unification Previous: Drawing Type Hierarchies

    
Typed Constituents: the FSET Construct

The fset special attribute expresses a completeness constraint in an FD.

          

;; Value of FSET is a list of symbols. ((a ((fset (x y z)) (x 1))))

FSET specifies that all symbols which are NOT listed is its value have a value of NONE, that is, they are not defined at this level of the fd.

          

;; b is not in the fset of a > (u '((a ((fset (x y z))))) '((a ((b 1))))) :fail

Two FSET descriptions can be unified. The result is an FSET whose value is the intersection of the two values.

          

> (u '((fset (x y z))) '((fset (v w x z)))) ((fset (x z)))

;; ((fset nil)) is equivalent to NONE (no feature accepted) > (u '((a ((fset (x y))))) '((a ((fset (a b)))))) ((a none))



Michael Elhadad - elhadad@cs.bgu.ac.il