Hello.

I'm not sure this is the right section but here it goes. I'm having a lot of trouble understanding the notion of an oracle in computer science. In his lecture notes, the teacher defines an oracle for a function f (in Mathematica language) as

Function[n,

Function[x,

Print[ToString[Oracle],n,ToString[on],x];

a=Input[];

If[IntegerQ[a]&&a>=0,

y=a,

While[True,Null[]]];

y

]

]

Now, my guess is that the input we provide is the image of the function which has the oracle. Is this right? Could you please give me an intuition of what's going on here?

Thanks in advance.