来自F#世界,我习惯使用|>
将数据传输到函数中:
[1..10] |> List.filter (fun n -> n % 2 = 0) |> List.map (fun n -> n * n);
我认为受Haskell启发的PureScript有类似的东西。
如何在PureScript中使用管道运算符?
答案 0 :(得分:6)
是的,您可以使用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)
答案 1 :(得分:1)
这是定义用于PureScript的|>
运算符的一种方法;它的定义方式与#
完全相同 - 即具有相同的优先级和关联性: -
pipeForwards :: forall a b. a -> (a -> b) -> b
pipeForwards x f = f x
infixl 1 pipeForwards as |>