| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Best way to do this query?
I wonder if "set every farmer who owns a donkey beats it" in the
following example from comp.lang.functional exemplifies the root
problem. The query is complicated because something transient from a
lower level needs to be known at higher level. In dbd's solution,
variable donkeyX is used to transfer required state to higher level of
expression.
(new 'farmer1 'farmer)
(new 'farmer2 'farmer)
(new 'donkey1 'donkey)
(new 'donkey2 'donkey)
(new 'own 'verb)
(set farmer1 own donkey1)
(set farmer2 own donkey2)
(; Set every farmer, who owns a donkey, smokes)
(new 'smoke 'verb)
(set (& (get farmer instance *)
(get * own (get donkey instance *))) smoke)
(; Set every farmer who owns a donkey beats it)
(new 'beat 'verb)
(newVar 'donkeyX)
(set (& (get farmer instance *)
(get * own (setVarVal 'donkeyX (get donkey instance *))))
beat
(getVarVal 'donkeyX))
Received on Wed Jan 17 2007 - 15:45:40 CST
![]() |
![]() |