trackler 2.2.1.170 → 2.2.1.171
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/trackler/version.rb +1 -1
- data/problem-specifications/exercises/simple-cipher/canonical-data.json +5 -4
- data/tracks/cfml/config.json +1 -0
- data/tracks/coffeescript/config.json +43 -87
- data/tracks/coffeescript/config/maintainers.json +8 -2
- data/tracks/common-lisp/config.json +1 -0
- data/tracks/coq/config.json +7 -15
- data/tracks/coq/config/maintainers.json +5 -5
- data/tracks/crystal/config.json +51 -99
- data/tracks/crystal/config/maintainers.json +8 -8
- data/tracks/d/config.json +58 -60
- data/tracks/d/config/maintainers.json +8 -8
- data/tracks/delphi/config.json +12 -0
- data/tracks/delphi/exercises/isbn-verifier/uTestISBNVerifier.pas +30 -3
- data/tracks/delphi/exercises/word-count/README.md +39 -0
- data/tracks/delphi/exercises/word-count/WordCount.dpr +60 -0
- data/tracks/delphi/exercises/word-count/uWordCountExample.pas +67 -0
- data/tracks/delphi/exercises/word-count/uWordCountTests.pas +247 -0
- data/tracks/elisp/config.json +1 -0
- data/tracks/erlang/config.json +1 -1
- data/tracks/fortran/config.json +16 -32
- data/tracks/fortran/config/maintainers.json +5 -5
- data/tracks/go/config.json +1 -0
- data/tracks/go/exercises/bank-account/bank_account_test.go +3 -3
- data/tracks/go/exercises/parallel-letter-frequency/parallel_letter_frequency_test.go +17 -1
- data/tracks/groovy/config.json +89 -89
- data/tracks/groovy/config/maintainers.json +6 -6
- data/tracks/haxe/config.json +17 -17
- data/tracks/haxe/config/maintainers.json +1 -1
- data/tracks/java/scripts/insert-ignores.sh +33 -11
- data/tracks/julia/config.json +1 -0
- data/tracks/lua/config.json +1 -0
- data/tracks/lua/docs/ABOUT.md +7 -3
- data/tracks/nim/config.json +14 -2
- data/tracks/nim/exercises/sum-of-multiples/README.md +15 -0
- data/tracks/nim/exercises/sum-of-multiples/example.nim +6 -0
- data/tracks/nim/exercises/sum-of-multiples/sum_of_multiples_test.nim +44 -0
- data/tracks/objective-c/config.json +1 -0
- data/tracks/ocaml/config.json +1 -0
- data/tracks/perl5/config.json +138 -258
- data/tracks/perl5/config/maintainers.json +8 -8
- data/tracks/pharo/.travis.yml +1 -1
- data/tracks/pharo/config.json +3 -4
- data/tracks/pharo/config/maintainers.json +1 -1
- data/tracks/pharo/exercises/.keep +0 -0
- data/tracks/php/config.json +191 -211
- data/tracks/php/config/maintainers.json +11 -11
- data/tracks/plsql/config.json +49 -49
- data/tracks/plsql/config/maintainers.json +5 -5
- data/tracks/pony/config.json +27 -26
- data/tracks/pony/config/maintainers.json +5 -5
- data/tracks/prolog/config.json +1 -0
- data/tracks/purescript/config.json +49 -51
- data/tracks/purescript/config/maintainers.json +11 -11
- data/tracks/racket/config.json +1 -0
- data/tracks/scala/config.json +1 -0
- data/tracks/scheme/config.json +1 -0
- data/tracks/swift/config.json +1 -0
- data/tracks/typescript/config.json +1 -0
- data/tracks/vbnet/config.json +16 -32
- data/tracks/vbnet/config/maintainers.json +5 -5
- data/tracks/vimscript/config.json +1 -0
- metadata +10 -2
@@ -1,25 +1,25 @@
|
|
1
1
|
{
|
2
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
|
2
3
|
"maintainers": [
|
3
4
|
{
|
4
5
|
"github_username": "bmulvihill",
|
5
|
-
"show_on_website": false,
|
6
6
|
"alumnus": false,
|
7
|
+
"show_on_website": false,
|
7
8
|
"name": null,
|
8
|
-
"bio": null,
|
9
9
|
"link_text": null,
|
10
10
|
"link_url": null,
|
11
|
-
"avatar_url": null
|
11
|
+
"avatar_url": null,
|
12
|
+
"bio": null
|
12
13
|
},
|
13
14
|
{
|
14
15
|
"github_username": "mhelmetag",
|
15
|
-
"show_on_website": false,
|
16
16
|
"alumnus": false,
|
17
|
+
"show_on_website": false,
|
17
18
|
"name": null,
|
18
|
-
"bio": null,
|
19
19
|
"link_text": null,
|
20
20
|
"link_url": null,
|
21
|
-
"avatar_url": null
|
21
|
+
"avatar_url": null,
|
22
|
+
"bio": null
|
22
23
|
}
|
23
|
-
]
|
24
|
-
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
24
|
+
]
|
25
25
|
}
|
data/tracks/d/config.json
CHANGED
@@ -1,218 +1,216 @@
|
|
1
1
|
{
|
2
2
|
"language": "D",
|
3
|
-
"checklist_issue": 6,
|
4
3
|
"active": true,
|
4
|
+
"blurb": "",
|
5
|
+
"checklist_issue": 6,
|
5
6
|
"test_pattern": "source.*[.]d",
|
6
7
|
"exercises": [
|
7
8
|
{
|
8
|
-
"uuid": "a91c2216-9331-4485-ae4b-190ee9e2a7f8",
|
9
9
|
"slug": "hello-world",
|
10
|
+
"uuid": "a91c2216-9331-4485-ae4b-190ee9e2a7f8",
|
10
11
|
"core": false,
|
11
12
|
"unlocked_by": null,
|
12
13
|
"difficulty": 1,
|
13
14
|
"topics": [
|
14
|
-
"
|
15
|
+
"language_basics"
|
15
16
|
]
|
16
17
|
},
|
17
18
|
{
|
18
|
-
"uuid": "9f52d6a7-1002-4614-afc3-cce03187c59b",
|
19
19
|
"slug": "leap",
|
20
|
+
"uuid": "9f52d6a7-1002-4614-afc3-cce03187c59b",
|
20
21
|
"core": false,
|
21
22
|
"unlocked_by": null,
|
22
23
|
"difficulty": 1,
|
23
24
|
"topics": [
|
24
|
-
"
|
25
|
+
"language_basics"
|
25
26
|
]
|
26
27
|
},
|
27
28
|
{
|
28
|
-
"uuid": "8c976f92-fcfa-45f0-9bd1-2353822e51e8",
|
29
29
|
"slug": "gigasecond",
|
30
|
+
"uuid": "8c976f92-fcfa-45f0-9bd1-2353822e51e8",
|
30
31
|
"core": false,
|
31
32
|
"unlocked_by": null,
|
32
33
|
"difficulty": 1,
|
33
34
|
"topics": [
|
34
|
-
"
|
35
|
+
"language_basics",
|
35
36
|
"time"
|
36
37
|
]
|
37
38
|
},
|
38
39
|
{
|
39
|
-
"uuid": "208f9a34-bdf2-4c2b-b102-f0ef1a5d04fe",
|
40
40
|
"slug": "rna-transcription",
|
41
|
+
"uuid": "208f9a34-bdf2-4c2b-b102-f0ef1a5d04fe",
|
41
42
|
"core": false,
|
42
43
|
"unlocked_by": null,
|
43
44
|
"difficulty": 2,
|
44
45
|
"topics": [
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
46
|
+
"control_flow_foreach",
|
47
|
+
"error_handling",
|
48
|
+
"string_manipulation"
|
48
49
|
]
|
49
50
|
},
|
50
51
|
{
|
51
|
-
"uuid": "f6d21f86-b4d3-4dec-b830-8e19e1018548",
|
52
52
|
"slug": "raindrops",
|
53
|
+
"uuid": "f6d21f86-b4d3-4dec-b830-8e19e1018548",
|
53
54
|
"core": false,
|
54
55
|
"unlocked_by": null,
|
55
56
|
"difficulty": 1,
|
56
57
|
"topics": [
|
57
|
-
"
|
58
|
-
"
|
58
|
+
"control_flow_if_statements",
|
59
|
+
"language_basics"
|
59
60
|
]
|
60
61
|
},
|
61
62
|
{
|
62
|
-
"uuid": "99ee69a6-2c0f-4c7c-86f9-bee1633b4f51",
|
63
63
|
"slug": "bob",
|
64
|
+
"uuid": "99ee69a6-2c0f-4c7c-86f9-bee1633b4f51",
|
64
65
|
"core": false,
|
65
66
|
"unlocked_by": null,
|
66
67
|
"difficulty": 2,
|
67
68
|
"topics": [
|
68
|
-
"
|
69
|
-
"
|
69
|
+
"control_flow_if_statements",
|
70
|
+
"string_manipulation"
|
70
71
|
]
|
71
72
|
},
|
72
73
|
{
|
73
|
-
"uuid": "dc631076-1eb8-4120-bd8f-dccf33df9a3f",
|
74
74
|
"slug": "etl",
|
75
|
+
"uuid": "dc631076-1eb8-4120-bd8f-dccf33df9a3f",
|
75
76
|
"core": false,
|
76
77
|
"unlocked_by": null,
|
77
78
|
"difficulty": 2,
|
78
79
|
"topics": [
|
79
|
-
"
|
80
|
-
"
|
81
|
-
"
|
80
|
+
"associative_arrays",
|
81
|
+
"control_flow_foreach",
|
82
|
+
"string_manipulation"
|
82
83
|
]
|
83
84
|
},
|
84
85
|
{
|
85
|
-
"uuid": "87c87444-2349-40ab-a9a3-c0f0d2e200d6",
|
86
86
|
"slug": "hamming",
|
87
|
+
"uuid": "87c87444-2349-40ab-a9a3-c0f0d2e200d6",
|
87
88
|
"core": false,
|
88
89
|
"unlocked_by": null,
|
89
90
|
"difficulty": 2,
|
90
91
|
"topics": [
|
91
|
-
"
|
92
|
-
"
|
92
|
+
"control_flow_foreach",
|
93
|
+
"error_handling"
|
93
94
|
]
|
94
95
|
},
|
95
96
|
{
|
96
|
-
"uuid": "23b23ac0-62ef-4a22-b634-d64206c8a226",
|
97
97
|
"slug": "nucleotide-count",
|
98
|
+
"uuid": "23b23ac0-62ef-4a22-b634-d64206c8a226",
|
98
99
|
"core": false,
|
99
100
|
"unlocked_by": null,
|
100
101
|
"difficulty": 3,
|
101
102
|
"topics": [
|
103
|
+
"associative_arrays",
|
102
104
|
"classes",
|
103
|
-
"parsing"
|
104
|
-
"associative arrays"
|
105
|
+
"parsing"
|
105
106
|
]
|
106
107
|
},
|
107
108
|
{
|
108
|
-
"uuid": "d7dd5df3-ff36-47ee-88db-e0f974a4cb19",
|
109
109
|
"slug": "robot-name",
|
110
|
+
"uuid": "d7dd5df3-ff36-47ee-88db-e0f974a4cb19",
|
110
111
|
"core": false,
|
111
112
|
"unlocked_by": null,
|
112
113
|
"difficulty": 3,
|
113
114
|
"topics": [
|
114
115
|
"classes",
|
115
|
-
"
|
116
|
+
"random_numbers"
|
116
117
|
]
|
117
118
|
},
|
118
119
|
{
|
119
|
-
"uuid": "d6c67e30-c950-40b6-b6db-0fa6df5652af",
|
120
120
|
"slug": "difference-of-squares",
|
121
|
+
"uuid": "d6c67e30-c950-40b6-b6db-0fa6df5652af",
|
121
122
|
"core": false,
|
122
123
|
"unlocked_by": null,
|
123
124
|
"difficulty": 2,
|
124
125
|
"topics": [
|
125
|
-
"
|
126
|
-
"
|
126
|
+
"algorithms",
|
127
|
+
"control_flow_foreach",
|
127
128
|
"functional",
|
128
|
-
"
|
129
|
+
"template_metaprogramming"
|
129
130
|
]
|
130
131
|
},
|
131
132
|
{
|
132
|
-
"uuid": "5647c00e-d4be-4546-bac3-6a3e1670c2a1",
|
133
133
|
"slug": "roman-numerals",
|
134
|
+
"uuid": "5647c00e-d4be-4546-bac3-6a3e1670c2a1",
|
134
135
|
"core": false,
|
135
136
|
"unlocked_by": null,
|
136
137
|
"difficulty": 3,
|
137
138
|
"topics": [
|
138
|
-
"string manipulation",
|
139
139
|
"conversions",
|
140
|
-
"functional"
|
140
|
+
"functional",
|
141
|
+
"string_manipulation"
|
141
142
|
]
|
142
143
|
},
|
143
144
|
{
|
144
|
-
"uuid": "14c3c478-9dc1-470b-8517-35c3ceac3f47",
|
145
145
|
"slug": "series",
|
146
|
+
"uuid": "14c3c478-9dc1-470b-8517-35c3ceac3f47",
|
146
147
|
"core": false,
|
147
148
|
"unlocked_by": null,
|
148
149
|
"difficulty": 3,
|
149
150
|
"topics": [
|
150
|
-
"
|
151
|
-
"
|
151
|
+
"arrays",
|
152
|
+
"string_manipulation"
|
152
153
|
]
|
153
154
|
},
|
154
155
|
{
|
155
|
-
"uuid": "c9acd967-fc2a-4c74-b584-2572ce690e71",
|
156
156
|
"slug": "triangle",
|
157
|
+
"uuid": "c9acd967-fc2a-4c74-b584-2572ce690e71",
|
157
158
|
"core": false,
|
158
159
|
"unlocked_by": null,
|
159
160
|
"difficulty": 2,
|
160
161
|
"topics": [
|
161
|
-
"
|
162
|
-
"
|
162
|
+
"control_flow_if_statements",
|
163
|
+
"language_basics"
|
163
164
|
]
|
164
165
|
},
|
165
166
|
{
|
166
|
-
"uuid": "45afc532-3f6c-4b9e-90f6-c53a79551af1",
|
167
167
|
"slug": "crypto-square",
|
168
|
+
"uuid": "45afc532-3f6c-4b9e-90f6-c53a79551af1",
|
168
169
|
"core": false,
|
169
170
|
"unlocked_by": null,
|
170
171
|
"difficulty": 3,
|
171
172
|
"topics": [
|
172
|
-
"
|
173
|
+
"algorithms",
|
173
174
|
"classes",
|
174
|
-
"
|
175
|
+
"string_manipulation"
|
175
176
|
]
|
176
177
|
},
|
177
178
|
{
|
178
|
-
"uuid": "2ba799a8-eab9-44a0-9b31-a10e72baa38b",
|
179
179
|
"slug": "circular-buffer",
|
180
|
+
"uuid": "2ba799a8-eab9-44a0-9b31-a10e72baa38b",
|
180
181
|
"core": false,
|
181
182
|
"unlocked_by": null,
|
182
183
|
"difficulty": 4,
|
183
184
|
"topics": [
|
184
|
-
"
|
185
|
-
"
|
185
|
+
"class_templates",
|
186
|
+
"data_structures"
|
186
187
|
]
|
187
188
|
},
|
188
189
|
{
|
189
|
-
"uuid": "a4cf4571-1f97-438c-9c02-3fe7c52ee25f",
|
190
190
|
"slug": "pangram",
|
191
|
+
"uuid": "a4cf4571-1f97-438c-9c02-3fe7c52ee25f",
|
191
192
|
"core": false,
|
192
193
|
"unlocked_by": null,
|
193
194
|
"difficulty": 1,
|
194
195
|
"topics": [
|
195
|
-
"
|
196
|
-
"
|
197
|
-
"
|
196
|
+
"control_flow",
|
197
|
+
"language_basics",
|
198
|
+
"string_manipulation"
|
198
199
|
]
|
199
200
|
},
|
200
201
|
{
|
201
|
-
"uuid": "31dd1e53-2b5e-4d40-ac4c-a68fe5e6635c",
|
202
202
|
"slug": "react",
|
203
|
+
"uuid": "31dd1e53-2b5e-4d40-ac4c-a68fe5e6635c",
|
203
204
|
"core": false,
|
204
205
|
"unlocked_by": null,
|
205
206
|
"difficulty": 10,
|
206
207
|
"topics": [
|
207
|
-
"
|
208
|
+
"delegates",
|
208
209
|
"generics",
|
209
|
-
"
|
210
|
-
"
|
211
|
-
"
|
210
|
+
"higher_order_functions",
|
211
|
+
"nested_classes",
|
212
|
+
"reactive_programming"
|
212
213
|
]
|
213
214
|
}
|
214
|
-
],
|
215
|
-
"foregone": [
|
216
|
-
|
217
215
|
]
|
218
216
|
}
|
@@ -1,25 +1,25 @@
|
|
1
1
|
{
|
2
|
+
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
|
2
3
|
"maintainers": [
|
3
4
|
{
|
4
5
|
"github_username": "celavek",
|
5
|
-
"show_on_website": false,
|
6
6
|
"alumnus": false,
|
7
|
+
"show_on_website": false,
|
7
8
|
"name": null,
|
8
|
-
"bio": null,
|
9
9
|
"link_text": null,
|
10
10
|
"link_url": null,
|
11
|
-
"avatar_url": null
|
11
|
+
"avatar_url": null,
|
12
|
+
"bio": null
|
12
13
|
},
|
13
14
|
{
|
14
15
|
"github_username": "tmccombs",
|
15
|
-
"show_on_website": false,
|
16
16
|
"alumnus": false,
|
17
|
+
"show_on_website": false,
|
17
18
|
"name": null,
|
18
|
-
"bio": null,
|
19
19
|
"link_text": null,
|
20
20
|
"link_url": null,
|
21
|
-
"avatar_url": null
|
21
|
+
"avatar_url": null,
|
22
|
+
"bio": null
|
22
23
|
}
|
23
|
-
]
|
24
|
-
"docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
|
24
|
+
]
|
25
25
|
}
|
data/tracks/delphi/config.json
CHANGED
@@ -301,6 +301,18 @@
|
|
301
301
|
"tuples"
|
302
302
|
]
|
303
303
|
},
|
304
|
+
{
|
305
|
+
"slug": "word-count",
|
306
|
+
"uuid": "70643878-7f92-4823-8ec8-1159e901286f",
|
307
|
+
"core": false,
|
308
|
+
"unlocked_by": "bob",
|
309
|
+
"difficulty": 4,
|
310
|
+
"topics": [
|
311
|
+
"dictionaries",
|
312
|
+
"strings",
|
313
|
+
"transforming"
|
314
|
+
]
|
315
|
+
},
|
304
316
|
{
|
305
317
|
"slug": "circular-buffer",
|
306
318
|
"uuid": "f949b958-d2e0-4f21-a6db-12ba89f8ab57",
|
@@ -5,7 +5,7 @@ uses
|
|
5
5
|
DUnitX.TestFramework;
|
6
6
|
|
7
7
|
const
|
8
|
-
CanonicalVersion = '2.
|
8
|
+
CanonicalVersion = '2.6.0';
|
9
9
|
|
10
10
|
type
|
11
11
|
[TestFixture]
|
@@ -51,6 +51,10 @@ type
|
|
51
51
|
[Ignore]
|
52
52
|
procedure too_long_isbn_and_no_dashes;
|
53
53
|
|
54
|
+
[Test]
|
55
|
+
[Ignore]
|
56
|
+
procedure too_short_isbn;
|
57
|
+
|
54
58
|
[Test]
|
55
59
|
[Ignore]
|
56
60
|
procedure isbn_without_check_digit;
|
@@ -66,6 +70,14 @@ type
|
|
66
70
|
[Test]
|
67
71
|
[Ignore]
|
68
72
|
procedure empty_ISBN;
|
73
|
+
|
74
|
+
[Test]
|
75
|
+
[Ignore]
|
76
|
+
procedure input_is_9_characters;
|
77
|
+
|
78
|
+
[Test]
|
79
|
+
[Ignore]
|
80
|
+
procedure invalid_characters_are_not_ignored;
|
69
81
|
end;
|
70
82
|
|
71
83
|
implementation
|
@@ -85,12 +97,22 @@ end;
|
|
85
97
|
|
86
98
|
procedure ISBNVerifierTest.empty_ISBN;
|
87
99
|
begin
|
88
|
-
Assert.IsFalse(TIsbn.isValid(''))
|
100
|
+
Assert.IsFalse(TIsbn.isValid(''));
|
101
|
+
end;
|
102
|
+
|
103
|
+
procedure ISBNVerifierTest.input_is_9_characters;
|
104
|
+
begin
|
105
|
+
Assert.IsFalse(TIsbn.isValid('134456729'));
|
106
|
+
end;
|
107
|
+
|
108
|
+
procedure ISBNVerifierTest.invalid_characters_are_not_ignored;
|
109
|
+
begin
|
110
|
+
Assert.IsFalse(TIsbn.isValid('3132P34035'));
|
89
111
|
end;
|
90
112
|
|
91
113
|
procedure ISBNVerifierTest.invalid_character_in_isbn;
|
92
114
|
begin
|
93
|
-
Assert.IsFalse(TIsbn.isValid('3-598-P1581-X'))
|
115
|
+
Assert.IsFalse(TIsbn.isValid('3-598-P1581-X'));
|
94
116
|
end;
|
95
117
|
|
96
118
|
procedure ISBNVerifierTest.invalid_isbn_check_digit;
|
@@ -123,6 +145,11 @@ begin
|
|
123
145
|
Assert.IsFalse(TIsbn.isValid('3598215078X'));
|
124
146
|
end;
|
125
147
|
|
148
|
+
procedure ISBNVerifierTest.too_short_isbn;
|
149
|
+
begin
|
150
|
+
Assert.IsFalse(TIsbn.isValid('00'));
|
151
|
+
end;
|
152
|
+
|
126
153
|
procedure ISBNVerifierTest.valid_isbn_number;
|
127
154
|
begin
|
128
155
|
Assert.IsTrue(TIsbn.isValid('3-598-21508-8'));
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Word Count
|
2
|
+
|
3
|
+
Given a phrase, count the occurrences of each word in that phrase.
|
4
|
+
|
5
|
+
For example for the input `"olly olly in come free"`
|
6
|
+
|
7
|
+
```text
|
8
|
+
olly: 2
|
9
|
+
in: 1
|
10
|
+
come: 1
|
11
|
+
free: 1
|
12
|
+
```
|
13
|
+
|
14
|
+
## Testing
|
15
|
+
|
16
|
+
In order to run the tests for this track, you will need to install
|
17
|
+
DUnitX. Please see the [installation](http://www.exercism.io/languages/delphi/installation) instructions for more information.
|
18
|
+
|
19
|
+
### Loading Exercises into Delphi
|
20
|
+
|
21
|
+
If Delphi is properly installed, and `*.dpr` file types have been associated with Delphi, then double clicking the supplied `*.dpr` file will start Delphi and load the exercise/project. `control + F9` is the keyboard shortcut to compile the project or pressing `F9` will compile and run the project.
|
22
|
+
|
23
|
+
Alternatively you may opt to start Delphi and load your project via. the `File` drop down menu.
|
24
|
+
|
25
|
+
### When Questions Come Up
|
26
|
+
We monitor the [Pascal-Delphi](https://gitter.im/exercism/Pascal-Delphi) support room on [gitter.im](https://gitter.im) to help you with any questions that might arise.
|
27
|
+
|
28
|
+
### Submitting Exercises
|
29
|
+
|
30
|
+
Note that, when trying to submit an exercise, make sure the exercise file you're submitting is in the `exercism/delphi/<exerciseName>` directory.
|
31
|
+
|
32
|
+
For example, if you're submitting `ubob.pas` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/delphi/bob/ubob.pas`.
|
33
|
+
|
34
|
+
## Source
|
35
|
+
|
36
|
+
This is a classic toy problem, but we were reminded of it by seeing it in the Go Tour.
|
37
|
+
|
38
|
+
## Submitting Incomplete Solutions
|
39
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|