Lambda Expression w Powershell

Mam kod w języku C #, który używa wyrażeń lambda do przekazywania przekazań do metody. Jak mogę to osiągnąć w PowerShell. Na przykład poniżej znajduje się kod C #:

string input = "(,)(;)(:)(!)";
string pattern = @"\((?<val>[\,\!\;\:])\)";
var r = new Regex(pattern);
string result = r.Replace(input, m =>
    {
        if (m.Groups["val"].Value == ";") return "[1]";
        else return "[0]";
    });
Console.WriteLine(result);

A to jest skrypt PowerShell bez wyrażenia lambda w miejscu:

$input = "(,)(;)(:)(!)";
$pattern = "\((?<val>[\,\!\;\:])\)";
$r = New-Object System.Text.RegularExpressions.Regex $pattern
$result = $r.Replace($input, "WHAT HERE?")
Write-Host $result

Uwaga: moje pytanie nie dotyczy rozwiązania tego problemu z wyrażeniem regularnym. Chcę tylko wiedzieć, jak przekazać wyrażenie lambda do metody, która odbiera delegatów w PowerShell.

questionAnswers(3)

yourAnswerToTheQuestion