In the traditional oracle Turing machine, the oracle is specified as a decision problem. Roughly speaking, one puts a string in the oracle tape, and asks whether it is true or false. I am wondering whether it makes sense to consider a functional oracle. This means, one puts a string $x$ in the oracle tape, and guarantee the returned result $f(x)$ is polynomially bounded in length by $x$, and the oracle is supposed to return $f(x)$. A very natural such an oracle is an FNP oracle, and one can define a class $P^{FNP}$. Any study regarding this? Or the notion is not well defined? Any comments are welcome. 
Functional oracles
cc.complexity theory;np;oracles