Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

livescriptのpiping記法はヤバさみがある

Javascriptメソッドチェインみたいなことはできませんが、
livescriptではPiping記法を使って、なんやらそれっぽい記述ができます。

x = [1 2 3] |> reverse |> head #=> 3

メソッドチェインとでもいうような奇妙なこともできます。

y = reverse <| [1 2 3] #=> [3,2,1]

また、Partially applied functionと組み合わせることで、
Rubyでいう

prc = ->x{x*2}; [1,2,3].map(&prc).reduce(&:+)
#or
[1,2,3].map{|x| x*2}.reduce(&:+)

と似た挙動が以下のような感じで実装できます

[1 2 3]
|> _.map _, (* 2)
|> _.reduce _, (+), 0