Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: Best way to do this query?

Re: Best way to do this query?

From: Neo <neo55592_at_hotmail.com>
Date: 17 Jan 2007 13:45:40 -0800
Message-ID: <1169070340.627742.115280@a75g2000cwd.googlegroups.com>


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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US