PureScript 有管道运算符吗?
Does PureScript have a pipe operator?
来自 F# 世界,我习惯使用 |>
将数据通过管道传输到函数中:
[1..10] |> List.filter (fun n -> n % 2 = 0) |> List.map (fun n -> n * n);
我假设受 Haskell 启发的 PureScript 也有类似的东西。
如何在 PureScript 中使用管道运算符?
是的,您可以使用 Prelude 中定义的 #
。
这是您的示例,使用 #
:
重写
http://try.purescript.org/?gist=0448c53ae7dc92278ca7c2bb3743832d&backend=core
module Main where
import Prelude
import Data.List ((..))
import Data.List as List
example = 1..10 # List.filter (\n -> n `mod` 2 == 0)
# map (\n -> n * n)
这是定义用于 PureScript 的 |>
运算符的一种方法;它的定义方式与 #
完全相同 - 即具有相同的优先级和关联性:-
pipeForwards :: forall a b. a -> (a -> b) -> b
pipeForwards x f = f x
infixl 1 pipeForwards as |>
来自 F# 世界,我习惯使用 |>
将数据通过管道传输到函数中:
[1..10] |> List.filter (fun n -> n % 2 = 0) |> List.map (fun n -> n * n);
我假设受 Haskell 启发的 PureScript 也有类似的东西。
如何在 PureScript 中使用管道运算符?
是的,您可以使用 Prelude 中定义的 #
。
这是您的示例,使用 #
:
http://try.purescript.org/?gist=0448c53ae7dc92278ca7c2bb3743832d&backend=core
module Main where
import Prelude
import Data.List ((..))
import Data.List as List
example = 1..10 # List.filter (\n -> n `mod` 2 == 0)
# map (\n -> n * n)
这是定义用于 PureScript 的 |>
运算符的一种方法;它的定义方式与 #
完全相同 - 即具有相同的优先级和关联性:-
pipeForwards :: forall a b. a -> (a -> b) -> b
pipeForwards x f = f x
infixl 1 pipeForwards as |>