Powershell:类似Haskell的$(apply)运算符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell:类似Haskell的$(apply)运算符?相关的知识,希望对你有一定的参考价值。

我经常开始输入azure命令,然后需要访问一个属性,最后是命令

(($a|get-something).prop1|get-otherstuff).prop2

有没有一种优雅的方式(或黑客)写它更像像haskell,以避免必须跳到开头paranthesis线的开头?我在想

$a | get-someArray $ [0] | get-details $ .prop2

对于.可访问的属性,我得到了这个:

function $ {param([parameter(ValueFromPipeline)] $x, [parameter(Position=1)]$y)$x|Select-Object -ExpandProperty $y}

允许我做expr |$ prop | expr |$ prop而不是((expr).prop) | expr).prop

对于阵列访问,我们可以做到

function § {param([parameter(ValueFromPipeline)] $x, [parameter(Position=1)]$y)$x[$y]}

因此,我们可以做到这一点:arrayexpr |§ 0 |$ prop

你有更多的想法可以让我们在打字之前不去思考吗?

答案

我真的不太了解Haskell,但是

$a | Get-Something | % prop1 | Get-OtherStuff | % prop2

也许?

当然,它很容易破损,你可能仍需要括号来澄清哪些结果以什么方式分组。但ForEach-Object是通过管道访问房产价值的便捷方式,远远超过Select-Object -ExpandProperty

以上是关于Powershell:类似Haskell的$(apply)运算符?的主要内容,如果未能解决你的问题,请参考以下文章

Scala 是不是有类似于 Haskell 的 `$` 的运算符?

是否有类似于 Haskell 的 $(美元符号)的 Scala 运算符?

是否有类似Python的Haskell可迭代解包方式?

AWS lambda 类似于 Haskell 函数的执行

Idris——类似Haskell的纯函数编程语言

c_cpp 类似Haskell的部分函数调用C ++ 11