PRF based on the GGM construction What's the differences between the concepts “pseudorandom generator” and “pseudorandom number generator”?

In fact, I want to implement a pseudorandom function based on GGM's construction at http://crypto.cs.uiuc.edu/wiki/index.php/GGM_PRF, but I need to get a doubling length PRG first. I cannot find any effective way to do this.

Can anybody help me or give me another way to implement a pseudorandom function?
A pseudorandom generator is far more specific.

A pseudorandom number generator can just be statistical and/or produce an

endless stream of output and/or take extra entropy as input while it's running.

This RFC gives a way to implement a pseudorandom function.

In fact, if you hadn't specified that you wanted a PRG to implement a PRF, then

I would've just suggested $\;\;\; x \: \mapsto \: \operatorname{HMAC}\hspace{.02 in}(x\hspace{.02 in},\hspace{-0.03 in}0) \: || \hspace{.02 in} \operatorname{HMAC}\hspace{.02 in}(x\hspace{.02 in},\hspace{-0.04 in}1) \;\;\;$ as the PRG.