Pretty good answer from SO):
======================================
function A {    
    Param([scriptblock]$functionToCall)    
    Write-Host "I'm calling $($functionToCall.Invoke(4))"
}

function B($x) {
    Write-Output "Function B with $x"
}

function C {
    Param($x)
    write-Output "Function C with $x"
}

PS> A -functionToCall $function:B
I'm calling Function B with 4

Labels: ,