>From the README file I suggested you consult. I note that the
implementation is such that duplicates in the first multifield
arguemnt will not be removed - i.e., if the arguments are themselves
not well-formed sets, the result won't be, either.
(union$ [<multifield-expression>]+)
Package:
jess.MultiFunctions
Arguments:
One or more multifields
Returns:
Multifield
Description:
Returns a new multifield consisting of the union of all of its
multifield arguments (i.e., of all the elements that appear in
any of the arguments with duplicates removed).
I think C P Lee wrote:
>
>
> For computing the union and intersection, duplicate elements
> should not be allowed to appear in the union or intersection of the sets.
> The final result for both union and intersection should be a new set fact
> containing the union or intersection of the two specified sets and the
> union and intersection facts should be retracted when the operations are
> complete. Did the rule define below consider the duplicate elements?
>
>
> Lee
>
> On Tue, 25 May 1999, Ernest Friedman-Hill wrote:
>
> > Well, I'm not sure where you're going with the templates exactly, but
> > note that there are two functions, union$ and intersection$, that will
> > do the work. Have a look in the README for documentation on these
> > functions.
> >
> > Presumably a set has only one name, so most of the multislots below
> > should be plain slots; only set.members should be a multislot. In that
> > case, a compute-union rule that created a new set to hold the result
> > might look like
> >
> > (defrule compute-union
> > ?u1 <- (union (set-1-name ?s1) (set-2-name ?s2))
> > (set (name ?s1) (members $?m1))
> > (set (name ?s2) (members $?m2))
> > =>
> > ;; I'm assuming this is a command so we want to retract it now
> > (retract ?u1)
> > (assert (set (name (sym-cat union-of- ?s1 -and- ?s2))
> > (members (union$ $?m1 $?m2)))))
> >
> >
> >
> > I think C P Lee wrote:
> > >
> > >
> > > I have a question about finding the intersection and union of two
> > > sets with set template (deftemplate set
> > > (multislot name)
> > > (multislot members))
> > >
> > > union template (deftemplate union
> > > (multislot set-1-name)
> > > (multislot set-2-name))
> > >
> > > intersection template (deftemplate intersection
> > > (multislot set-1-name)
> > > (multislot set-2-name))
> > >
> > > How to define rules to compute the intersection and union of two sets?
> > >
> > >
> > > Lee
> > >
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> > > in the BODY of a message to [EMAIL PROTECTED], NOT to the
> > > list. List problems? Notify [EMAIL PROTECTED]
> > > ---------------------------------------------------------------------
> > >
> > >
> >
> >
> > ---------------------------------------------------------
> > Ernest Friedman-Hill
> > Distributed Systems Research Phone: (925) 294-2154
> > Sandia National Labs FAX: (925) 294-2234
> > Org. 8920, MS 9214 [EMAIL PROTECTED]
> > PO Box 969 http://herzberg.ca.sandia.gov
> > Livermore, CA 94550
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> > in the BODY of a message to [EMAIL PROTECTED], NOT to the
> > list. List problems? Notify [EMAIL PROTECTED]
> > ---------------------------------------------------------------------
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
> in the BODY of a message to [EMAIL PROTECTED], NOT to the
> list. List problems? Notify [EMAIL PROTECTED]
> ---------------------------------------------------------------------
>
>
---------------------------------------------------------
Ernest Friedman-Hill
Distributed Systems Research Phone: (925) 294-2154
Sandia National Labs FAX: (925) 294-2234
Org. 8920, MS 9214 [EMAIL PROTECTED]
PO Box 969 http://herzberg.ca.sandia.gov
Livermore, CA 94550
---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list. List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------