PureScript是否有管道操作员?

时间:2016-12-20 22:24:33

标签: purescript

来自F#世界,我习惯使用|>将数据传输到函数中:

[1..10] |> List.filter (fun n -> n % 2 = 0) |> List.map (fun n -> n * n);

我认为受Haskell启发的PureScript有类似的东西。

如何在PureScript中使用管道运算符?

2 个答案:

答案 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 |>