Hacker News new | ask | show | jobs
by bonquesha99 249 days ago
If you're interested in the Ruby language too, check out this PoC gem for an "operator-less" syntax for pipe operations using regular blocks/expressions like every other Ruby DSL.

https://github.com/lendinghome/pipe_operator#-pipe_operator

  "https://api.github.com/repos/ruby/ruby".pipe do
    URI.parse
    Net::HTTP.get
    JSON.parse.fetch("stargazers_count")
    yield_self { |n| "Ruby has #{n} stars" }
    Kernel.puts
  end
  #=> Ruby has 15120 stars

  [9, 64].map(&Math.pipe.sqrt)           #=> [3.0, 8.0]
  [9, 64].map(&Math.pipe.sqrt.to_i.to_s) #=> ["3", "8"]
1 comments

It's an interesting experiment but standard Ruby is expressive enough.

[9, 64].map { Math.sqrt(_1) } #=> [3.0, 8.0]

For the first example I would just define a method that uses local variables. They're local so it's not polluting context.