The*_*kle 5 powershell closures functional-programming higher-order-functions
我不能让这个例子起作用
{ $_ + $_ }, { $_ + 1}, {$_ - 1} | % { $_ 1 }
Run Code Online (Sandbox Code Playgroud)
我希望它构造一个列表/数组/集合/任何函数(这部分很好),然后将该列表传递给右边的代码块,它将每个函数应用于参数1并返回一个数组结果(即; 2,2,0).我已经尝试过使用getnewclosure()方法,&运算符,到目前为止没有任何工作.
美元下划线变量是一个自动变量,仅在某些情况下填充; 在这种情况下,当有来自管道的传入对象时.为了给出$_值1,这似乎是你的意图,你必须将数字传递给每个,并执行scriptblock.最简单的方法是将它作为参数直接传递给%(foreach-object)接受一个scriptblock:
PS> { $_ + $_ }, { $_ + 1}, {$_ - 1} | % { 1 | % $_ }
2
2
0
Run Code Online (Sandbox Code Playgroud)
看看它直到它有意义:)如果它没有点击,请回复这里,我会更详细地解释.
如果您对powershell中的功能修补感兴趣,您可能会喜欢我为部分应用编写的这个功能:
http://www.nivot.org/blog/post/2010/03/11/PowerShell20PartialApplicationOfFunctionsAndCmdlets
这有点笨拙,但仍有可能.
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |