Is there any reason to use the "Param( ... )" construction inside a function definition? My understanding is that you should use this for specifying parameters to scripts (and scriptblocks). I see a lot of examples on the web with parameters listed this way instead of just listing the parameters after the function name.
Example:
function Foo([string]$Bar){
#Body of function
}
Or,
function Foo{
Param([string]$Bar)
}