more example in README.md
This commit is contained in:
parent
95a3027926
commit
a5b273033b
41
README.md
41
README.md
|
@ -8,8 +8,45 @@ Usage
|
|||
|
||||
require 'functional'
|
||||
|
||||
obj = 0 .. 10**12
|
||||
Functional.new( obj).select {|i| i.even? }.collect {|i| i/3 }.select {|i| i.even? }.each &method( :puts)
|
||||
# To demonstrate Functional, we create a Class with a infinite loop:
|
||||
class Sequence
|
||||
include Enumerable
|
||||
def initialize first = 0, step = 1
|
||||
@i, @step = first, step
|
||||
end
|
||||
def each
|
||||
# Our infinite loop:
|
||||
loop do
|
||||
yield @i
|
||||
@i += @step
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Functional.new( Sequence.new).
|
||||
select {|i| i.even? }.
|
||||
collect {|i| i/3 }.
|
||||
select {|i| i.even?}.
|
||||
collect {|i| [[[[[[i.even?, i.odd?]]], i, [[[[[[i.class]]]]]]]]] }.
|
||||
flatten. # It flattens everything! Not like: collect {|i| i.flatten }.
|
||||
p
|
||||
|
||||
# Without Functional... Bye bye.
|
||||
Sequence.new.
|
||||
select {|i| i.even? }.
|
||||
collect {|i| i/3 }.
|
||||
select {|i| i.even?}.
|
||||
collect {|i| [[[[[[i.even?, i.odd?]]], i, [[[[[[i.class]]]]]]]]] }.
|
||||
flatten. # It flattens everything! Not like: collect {|i| i.flatten }.
|
||||
p
|
||||
|
||||
It will never realize, that #p doesn't exists, because the first select runs endless.
|
||||
Functional#p prints everything to stdout.
|
||||
|
||||
(0..100000).to_fun.
|
||||
collect {|i| i*3 }.
|
||||
select {|i| i%5 == 2 }.
|
||||
to_a
|
||||
|
||||
What's with _#map_?
|
||||
=================
|
||||
|
|
Reference in a new issue