我寫這個(工作):Powershell的相當於F#Seq.forall
function ForAll {
BEGIN {
$allTrue = $true
}
PROCESS {
if ($_ -lt 1) { $allTrue = $false }
}
END {
$allTrue
}
}
$aList = (0..4)
$bList = (1..4)
$aList | ForAll # returns false
$bList | ForAll # returns true
但我想要做的就是更換($ _ -lt 1)用函數調用類似$我傳入ForAll函數的謂詞。我似乎無法得到這個工作。有任何想法嗎?
Stej,我在此將[腳本塊]如果$ _被取代的$ args [實際上是不需要的通知0]。有一天晚上,我試圖讓這個工作起來,讓我感到很困惑。最後,我得到的最短版本只是對你的一個小小的改變。 功能的ForAll($謂語){ ...} $ ALIST =(0..4) $ bList =(1..4) $ ALIST | ForAll {$ _ -gt 0}#返回false $ bList | ForAll {$ _ -gt 0}#返回true $ bList | ForAll {$ _ -gt 0 - 和$ _ -lt 5}#返回true – 2010-01-23 04:50:09
是的,這是絕對真實的。您可以使用自動變量 - 它看起來與foreach-object cmdlet相同。但是,我在$ _中遇到了一些更復雜的腳本問題,所以我不願意使用$ _。 – stej 2010-01-24 20:59:57