Sha256: 296860541f9991ab3181b989fb8c9be53fcb9d15ee56b1de0656c08869b0128f

Contents?: true

Size: 1.65 KB

Versions: 2

Compression:

Stored size: 1.65 KB

Contents

# Compare lambda_driver and iolite
# lambda_driver : http://yuroyoro.github.io/lambda_driver/
# http://yuroyoro.hatenablog.com/entry/2013/03/27/190640

require "iolite"
require "lambda_driver"

include Iolite::Placeholders
using Iolite::Refinements::ObjectWithToLazy


###########################################################
# default
[:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase }
# or
[:foo, :bar, :baz].map(&:to_s).map(&:upcase)
# => ["FOO",  "BAR",  "BAZ"]

# lambda_driver
[:foo, :bar, :baz].map(&:to_s >> :upcase )

# iolite
[:foo, :bar, :baz].map &arg1.to_s.upcase


###########################################################
# default
[:foo, :hoge, :bar, :fuga].select{|s| s.to_s.length > 3}
# => [:hoge, :fuga]

# lambda_driver
[:foo, :hoge, :bar, :fuga].select(&:to_s >> :length >> 3._(:<))

# iolite
[:foo, :hoge, :bar, :fuga].select &arg1.to_s.length > 3


###########################################################
# default
[:foo, :hoge, :bar, :fuga].select{|s| s.to_s.length > 3}
# => [:hoge, :fuga]

# lambda_driver
[:foo, :hoge, :bar, :fuga].select(&:to_s >> :length >> 3._(:<))

# iolite
[:foo, :hoge, :bar, :fuga].select &arg1.to_s.length > 3


###########################################################
# default
(1..10).select { |it| it % 2 == 0 }
# => [2, 4, 6, 8, 10]

# lambda_driver
(1..10).select &(:% * 2) >> (:== * 0)

# iolite
(1..10).select &arg1 % 2 == 0


###########################################################
def twice n
	n + n
end

# default
puts twice(10).to_s.length

# lambda_driver
_.twice >> :to_s >> :length >> _.puts < 10

# iolite
using Iolite::Refinements::ObjectWithToLazy
to_l.puts(to_l.twice(arg1).to_s.length).call(10)



Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
iolite-0.0.3 example/compare_lambda_driver.rb
iolite-0.0.2 example/compare_lambda_driver.rb