lab42_data_class 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lab42/data_class/version.rb +1 -1
- data/lib/lab42/list.rb +26 -9
- data/lib/lab42/nil.rb +19 -4
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d5eeca60436c025c569f2b33678f4a52da196c909d8292de9fe1e1226aac9567
|
|
4
|
+
data.tar.gz: cd593944b7fb98dc0150ec2876a70c25f4afc23bb0afe0dffc1af437e81f1fdc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99a0f3bb88fc1f6cdcd67292da3822cb62f911d8e8970cf481db8389d1ec5751e556356c66616f68989842748a84069c913db8420a4bc97521188016036b5947
|
|
7
|
+
data.tar.gz: 1ccda21d84aea6275132aa86f50cc8ed98415dc79f806f4abe5736b73ab6e6604d861120644072e089ba8810243018e2c9de61a594e2b0fbeed6cb302c7a8afb
|
data/lib/lab42/list.rb
CHANGED
|
@@ -7,27 +7,44 @@ module Lab42
|
|
|
7
7
|
include Enumerable
|
|
8
8
|
attr_reader :car, :cdr, :length
|
|
9
9
|
|
|
10
|
-
def ==(other)
|
|
10
|
+
def ==(other)
|
|
11
11
|
self.class.list?(other) &&
|
|
12
12
|
length == other.length &&
|
|
13
13
|
car == other.car &&
|
|
14
14
|
cdr == other.cdr
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
def cadr
|
|
17
|
+
def cadr
|
|
18
|
+
cdr.car
|
|
19
|
+
end
|
|
17
20
|
|
|
18
|
-
def caddr
|
|
21
|
+
def caddr
|
|
22
|
+
cdr.cdr.car
|
|
23
|
+
end
|
|
19
24
|
|
|
20
|
-
def cddr
|
|
25
|
+
def cddr
|
|
26
|
+
cdr.cdr
|
|
27
|
+
end
|
|
21
28
|
|
|
22
|
-
def cdddr
|
|
29
|
+
def cdddr
|
|
30
|
+
cdr.cdr.cdr
|
|
31
|
+
end
|
|
23
32
|
|
|
24
|
-
def cons(new_head)
|
|
33
|
+
def cons(new_head)
|
|
34
|
+
self.class.cons(new_head, self)
|
|
35
|
+
end
|
|
25
36
|
|
|
26
|
-
def deconstruct
|
|
37
|
+
def deconstruct
|
|
38
|
+
[car, cdr]
|
|
39
|
+
end
|
|
27
40
|
|
|
28
|
-
def each(&blk)
|
|
41
|
+
def each(&blk)
|
|
42
|
+
self.class.each(self, &blk)
|
|
43
|
+
end
|
|
29
44
|
|
|
30
|
-
def empty?
|
|
45
|
+
def empty?
|
|
46
|
+
false
|
|
47
|
+
end
|
|
31
48
|
end
|
|
32
49
|
end
|
|
33
50
|
# SPDX-License-Identifier: Apache-2.0
|
data/lib/lab42/nil.rb
CHANGED
|
@@ -4,10 +4,25 @@ module Lab42
|
|
|
4
4
|
module Nil
|
|
5
5
|
extend self, Enumerable
|
|
6
6
|
|
|
7
|
-
def deconstruct
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
def deconstruct
|
|
8
|
+
[]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def each
|
|
12
|
+
self
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def empty?
|
|
16
|
+
true
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def length
|
|
20
|
+
0
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def cons(new_head)
|
|
24
|
+
List.cons(new_head, self)
|
|
25
|
+
end
|
|
11
26
|
end
|
|
12
27
|
end
|
|
13
28
|
# SPDX-License-Identifier: Apache-2.0
|