编写Haskell程序我发现自己需要这样的运算符.
(|>) :: a -> (a -> b) -> b
(|>) = flip ($)
infixl 0 |>
Run Code Online (Sandbox Code Playgroud)
我认为将多个功能粘合在一起很有用.
tText cs = someFun cs |>
lines |>
map (drop 4) |>
reverse
Run Code Online (Sandbox Code Playgroud)
我更喜欢它,.因为|>应用函数的顺序与函数的编写顺序相同.
tText' cs = reverse .
map (drop 4) .
lines .
someFun $ cs
Run Code Online (Sandbox Code Playgroud)
问题是:这是(|>)Prelude某些其他基本库中已存在的东西吗?重新实现简单的东西是愚蠢的,我想避免.
Hoogle搜索没有帮助.我发现的最近的东西是>>>(箭头),但它似乎有点矫枉过正.
And*_*ewC 16
不,我所知道的标准库中没有任何东西.多年前我的很多代码都导入了我的breif但是方便的Forwards模块:
> module Forwards where
> infixl 0 |>
> infixl 9 .>
> (|>) = flip ($)
> (.>) = flip (.)
Run Code Online (Sandbox Code Playgroud)
我甚至使用了和你一样的名字!
这些天我根本不使用它 - 我习惯了函数组合使用的顺序.
随意使用自己的方便快捷方式.
我也$比以前少用.我曾经写过的地方
thing = this $ that arg $ an other $ it
Run Code Online (Sandbox Code Playgroud)
现在我写
thing = this . that arg . an other $ it
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |