gpt4 book ai didi

haskell -::a -> (a -> b) -> b 运算符 (Haskell)

转载 作者:行者123 更新时间:2023-12-02 20:04:26 25 4
gpt4 key购买 nike

在编写 Haskell 程序时,我发现自己需要这样的运算符。

(|>) :: a -> (a -> b) -> b
(|>) = flip ($)
infixl 0 |>

我认为将许多功能粘合在一起时很有用。

tText cs = someFun cs   |>
lines |>
map (drop 4) |>
reverse

. 相比,我更喜欢它,因为使用 |> 时,应用函数的顺序与编写函数的顺序相同。

tText' cs = reverse      . 
map (drop 4) .
lines .
someFun $ cs

问题是:这个 (|>) 是否已经存在于 Prelude/其他一些基本库中?重新实现简单的东西是一件愚蠢的事情,我想避免。

Hoogle 搜索没有帮助。我发现的最接近的是 >>> (箭头),但这似乎有点矫枉过正。

最佳答案

不,据我所知,标准库中没有任何内容。很多年前,我的很多代码都导入了我的 breif 但很方便的 Forwards 模块:

> module Forwards where

> infixl 0 |>
> infixl 9 .>

> (|>) = flip ($)
> (.>) = flip (.)

我什至用了和你一样的名字!

这些天我根本不怎么使用它 - 我已经习惯了函数组合使用的顺序。

随意使用您自己方便的快捷方式。

我使用 $ 的次数也比以前少了。我以前写过的地方

thing = this $ that arg $ an other $ it

现在我写

thing = this . that arg . an other $ it

关于haskell -::a -> (a -> b) -> b 运算符 (Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15604290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com