funkr 0.0.12 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/funkr/extensions/enumerable.rb +18 -22
- data/lib/funkr/version.rb +1 -1
- metadata +3 -3
@@ -2,32 +2,27 @@
|
|
2
2
|
module Enumerable
|
3
3
|
|
4
4
|
# enumerable extensions
|
5
|
-
class NoHead; end
|
6
|
-
|
7
|
-
def head; empty? ? NoHead : first; end
|
8
|
-
|
9
|
-
def tail; self.drop(1); end
|
10
|
-
|
11
5
|
def all_different?
|
12
|
-
|
13
|
-
|
6
|
+
a = self.to_a
|
7
|
+
self.each do |e|
|
8
|
+
return false if a.include?(e)
|
9
|
+
a.shift
|
10
|
+
end
|
11
|
+
return true
|
14
12
|
end
|
15
13
|
|
16
14
|
# http://www.haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/Data-List.html#group
|
17
15
|
def group_seq_by(&block)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
a,rst = rst.span{|x| (yield x) == v}
|
25
|
-
res.push(a)
|
26
|
-
end
|
27
|
-
return res
|
16
|
+
res = []
|
17
|
+
rst = self.to_a
|
18
|
+
while !rst.empty? do
|
19
|
+
v = yield(rst.first)
|
20
|
+
a,rst = rst.span{|x| (yield x) == v}
|
21
|
+
res.push(a)
|
28
22
|
end
|
23
|
+
return res
|
29
24
|
end
|
30
|
-
|
25
|
+
|
31
26
|
# http://www.haskell.org/ghc/docs/6.12.2/html/libraries/base-4.2.0.1/src/GHC-List.html#span
|
32
27
|
def span(&block)
|
33
28
|
inc = []
|
@@ -40,14 +35,15 @@ module Enumerable
|
|
40
35
|
|
41
36
|
# Constitue des groupes disjoints de n éléments au plus
|
42
37
|
def groups_of(n)
|
43
|
-
|
44
|
-
[
|
38
|
+
g = self.take(n)
|
39
|
+
return [] if g.empty?
|
40
|
+
[g] + self.drop(n).groups_of(n)
|
45
41
|
end
|
46
42
|
|
47
43
|
# constitue des groupes de n éléments exactement, décalés de 1
|
48
44
|
def sliding_groups_of(n)
|
49
45
|
return [] if self.size < n
|
50
|
-
[ self.take(n) ] + self.
|
46
|
+
[ self.take(n) ] + self.drop(1).sliding_groups_of(n)
|
51
47
|
end
|
52
48
|
|
53
49
|
# trouve l'index d'une séquence
|
data/lib/funkr/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 14
|
9
|
+
version: 0.0.14
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Paul Rivier
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-07-19 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|