trackler 2.1.0.36 → 2.1.0.37
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/common/CONTRIBUTING.md +1 -1
- data/lib/trackler/version.rb +1 -1
- data/lib/trackler.rb +0 -5
- data/tracks/c/config.json +0 -5
- data/tracks/clojure/config.json +177 -59
- data/tracks/clojure/exercises/kindergarten-garden/src/example.clj +10 -8
- data/tracks/elisp/config.json +60 -24
- data/tracks/elixir/exercises/poker/poker_test.exs +1 -1
- data/tracks/fortran/config.json +6 -0
- data/tracks/fortran/exercises/pangram/example.f90 +33 -0
- data/tracks/fortran/exercises/pangram/pangram.fun +42 -0
- data/tracks/go/config.json +10 -4
- data/tracks/go/exercises/acronym/acronym.go +1 -1
- data/tracks/groovy/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
- data/tracks/haskell/config.json +1 -1
- data/tracks/java/bin/journey-test.sh +3 -0
- data/tracks/java/config.json +14 -14
- data/tracks/java/exercises/binary-search/src/test/java/BinarySearchTest.java +20 -20
- data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +32 -32
- data/tracks/java/exercises/build.gradle +57 -31
- data/tracks/java/exercises/hello-world/GETTING_STARTED.md +4 -0
- data/tracks/java/exercises/pythagorean-triplet/src/test/java/PythagoreanTripletTest.java +8 -8
- data/tracks/java/exercises/scrabble-score/src/example/java/Scrabble.java +1 -1
- data/tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java +10 -5
- data/tracks/java/exercises/series/src/test/java/SeriesTest.java +20 -20
- data/tracks/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/tracks/java/gradle/wrapper/gradle-wrapper.properties +2 -2
- data/tracks/julia/runtests.jl +1 -6
- data/tracks/kotlin/.gitignore +0 -5
- data/tracks/kotlin/.travis.yml +21 -1
- data/tracks/kotlin/bin/build-jq.sh +11 -0
- data/tracks/kotlin/bin/fetch-configlet +1 -1
- data/tracks/kotlin/bin/journey-test.sh +34 -14
- data/tracks/kotlin/bin/unit-tests.sh +2 -2
- data/tracks/kotlin/config.json +230 -160
- data/tracks/kotlin/exercises/build.gradle +3 -0
- data/tracks/kotlin/exercises/collatz-conjecture/src/test/kotlin/CollatzCalculatorTest.kt +7 -1
- data/tracks/kotlin/exercises/gradle.properties +1 -0
- data/tracks/kotlin/exercises/list-ops/HINTS.md +5 -0
- data/tracks/kotlin/exercises/list-ops/build.gradle +28 -0
- data/tracks/kotlin/exercises/list-ops/src/example/kotlin/CustomListExtensions.kt +43 -0
- data/tracks/kotlin/exercises/list-ops/src/main/kotlin/.keep +0 -0
- data/tracks/kotlin/exercises/list-ops/src/test/kotlin/ListExtensionsTest.kt +157 -0
- data/tracks/kotlin/exercises/settings.gradle +13 -12
- data/tracks/kotlin/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/tracks/kotlin/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/tracks/kotlin/gradlew +172 -0
- data/tracks/kotlin/gradlew.bat +84 -0
- data/tracks/lfe/config.json +90 -30
- data/tracks/ocaml/.travis-ci.sh +1 -1
- data/tracks/ocaml/.travis.yml +1 -1
- data/tracks/ocaml/README.md +1 -1
- data/tracks/perl5/.travis.yml +3 -2
- data/tracks/perl6/bin/exercise-gen.pl6 +6 -3
- data/tracks/racket/config.json +63 -21
- data/tracks/ruby/exercises/bob/bob_test.rb +0 -1
- data/tracks/ruby/lib/generator/command_line.rb +7 -3
- data/tracks/ruby/lib/generator/exercise.rb +19 -0
- data/tracks/ruby/lib/generator/files/generator_cases.rb +0 -4
- data/tracks/ruby/lib/generator/files/metadata_files.rb +1 -1
- data/tracks/ruby/lib/generator/files/track_files.rb +3 -3
- data/tracks/ruby/lib/generator/implementation.rb +7 -11
- data/tracks/ruby/lib/generator/template_values.rb +5 -9
- data/tracks/ruby/lib/generator/underscore.rb +4 -0
- data/tracks/ruby/lib/generator.rb +2 -2
- data/tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb +3 -3
- data/tracks/ruby/test/generator/exercise_test.rb +20 -0
- data/tracks/ruby/test/generator/files/generate_cases_test.rb +0 -4
- data/tracks/ruby/test/generator/files/metadata_files_test.rb +2 -2
- data/tracks/ruby/test/generator/files/track_files_test.rb +4 -5
- data/tracks/ruby/test/generator/implementation_test.rb +12 -20
- data/tracks/ruby/test/generator/template_values_test.rb +2 -33
- data/tracks/ruby/test/generator/underscore_test.rb +4 -0
- data/tracks/ruby/test/generator_test.rb +2 -2
- data/tracks/rust/exercises/gigasecond/Cargo.lock +58 -13
- data/tracks/rust/exercises/gigasecond/Cargo.toml +1 -1
- data/tracks/scala/exercises/acronym/src/test/scala/AcronymTest.scala +32 -12
- data/tracks/scala/exercises/hamming/example.scala +1 -1
- data/tracks/scala/exercises/hamming/src/test/scala/HammingTest.scala +55 -19
- data/tracks/scala/exercises/phone-number/example.scala +10 -20
- data/tracks/scala/exercises/phone-number/src/test/scala/PhoneNumberTest.scala +28 -81
- data/tracks/scala/testgen/src/main/scala/AcronymTestGenerator.scala +16 -0
- data/tracks/scala/testgen/src/main/scala/HammingTestGenerator.scala +34 -0
- data/tracks/scala/testgen/src/main/scala/PhoneNumberTestGenerator.scala +34 -0
- data/tracks/scheme/config.json +43 -16
- metadata +21 -5
- data/lib/trackler/problem.rb +0 -7
- data/lib/trackler/problems.rb +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2d78bc5ced63bb0a166c07ed433a7010cdca3f03
|
|
4
|
+
data.tar.gz: 4ddacb3577a7abf62626ede5d16eeb2e35b2b590
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99d663d8120f35a29f4e021057f76dadd8c9da3582090b0aaeff7d5937235e8b57e0040d1d5533f463709f16b2e3f42bfb4ec36f0eb8db4c8ce765c1d2599ca7
|
|
7
|
+
data.tar.gz: e908a609b5991912c2670eb060698e3c7754079a629ef41b764fd53d7ec50d24712ca167726ee667c08da8235acb88c8d323b8618a80dc6d0a6ad3c421506706
|
data/common/CONTRIBUTING.md
CHANGED
|
@@ -38,7 +38,7 @@ themselves. There are other guides about contributing to other parts of the Exer
|
|
|
38
38
|
* [Track configuration file (config.json)](#track-configuration-file)
|
|
39
39
|
* [Track-Level Linting With Configlet](#track-level-linting-with-configlet)
|
|
40
40
|
* [Git Basics](#git-basics)
|
|
41
|
-
[Improving Consistency By Extracting Shared Test Data](#improving-consistency-by-extracting-shared-test-data)
|
|
41
|
+
* [Improving Consistency By Extracting Shared Test Data](#improving-consistency-by-extracting-shared-test-data)
|
|
42
42
|
|
|
43
43
|
## We Will Gladly Help You Help Us
|
|
44
44
|
|
data/lib/trackler/version.rb
CHANGED
data/lib/trackler.rb
CHANGED
|
@@ -5,7 +5,6 @@ module Trackler
|
|
|
5
5
|
def self.reset
|
|
6
6
|
@path = nil
|
|
7
7
|
@implementations = nil
|
|
8
|
-
@problems = nil
|
|
9
8
|
@specifications = nil
|
|
10
9
|
@tracks = nil
|
|
11
10
|
@todos = nil
|
|
@@ -29,10 +28,6 @@ module Trackler
|
|
|
29
28
|
@specifications ||= Specifications.new(path)
|
|
30
29
|
end
|
|
31
30
|
|
|
32
|
-
def self.problems
|
|
33
|
-
@problems ||= Problems.new(path)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
31
|
def self.tracks
|
|
37
32
|
@tracks ||= Tracks.new(path)
|
|
38
33
|
end
|
data/tracks/c/config.json
CHANGED
data/tracks/clojure/config.json
CHANGED
|
@@ -20,297 +20,415 @@
|
|
|
20
20
|
{
|
|
21
21
|
"difficulty": 1,
|
|
22
22
|
"slug": "hello-world",
|
|
23
|
-
"topics": [
|
|
23
|
+
"topics": [
|
|
24
|
+
|
|
25
|
+
]
|
|
24
26
|
},
|
|
25
27
|
{
|
|
26
28
|
"difficulty": 1,
|
|
27
29
|
"slug": "bob",
|
|
28
|
-
"topics": [
|
|
30
|
+
"topics": [
|
|
31
|
+
|
|
32
|
+
]
|
|
29
33
|
},
|
|
30
34
|
{
|
|
31
35
|
"difficulty": 1,
|
|
32
36
|
"slug": "rna-transcription",
|
|
33
|
-
"topics": [
|
|
37
|
+
"topics": [
|
|
38
|
+
|
|
39
|
+
]
|
|
34
40
|
},
|
|
35
41
|
{
|
|
36
42
|
"difficulty": 1,
|
|
37
43
|
"slug": "word-count",
|
|
38
|
-
"topics": [
|
|
44
|
+
"topics": [
|
|
45
|
+
|
|
46
|
+
]
|
|
39
47
|
},
|
|
40
48
|
{
|
|
41
49
|
"difficulty": 1,
|
|
42
50
|
"slug": "anagram",
|
|
43
|
-
"topics": [
|
|
51
|
+
"topics": [
|
|
52
|
+
|
|
53
|
+
]
|
|
44
54
|
},
|
|
45
55
|
{
|
|
46
56
|
"difficulty": 1,
|
|
47
57
|
"slug": "beer-song",
|
|
48
|
-
"topics": [
|
|
58
|
+
"topics": [
|
|
59
|
+
|
|
60
|
+
]
|
|
49
61
|
},
|
|
50
62
|
{
|
|
51
63
|
"difficulty": 1,
|
|
52
64
|
"slug": "nucleotide-count",
|
|
53
|
-
"topics": [
|
|
65
|
+
"topics": [
|
|
66
|
+
|
|
67
|
+
]
|
|
54
68
|
},
|
|
55
69
|
{
|
|
56
70
|
"difficulty": 1,
|
|
57
71
|
"slug": "hamming",
|
|
58
|
-
"topics": [
|
|
72
|
+
"topics": [
|
|
73
|
+
|
|
74
|
+
]
|
|
59
75
|
},
|
|
60
76
|
{
|
|
61
77
|
"difficulty": 1,
|
|
62
78
|
"slug": "phone-number",
|
|
63
|
-
"topics": [
|
|
79
|
+
"topics": [
|
|
80
|
+
|
|
81
|
+
]
|
|
64
82
|
},
|
|
65
83
|
{
|
|
66
84
|
"difficulty": 1,
|
|
67
85
|
"slug": "clock",
|
|
68
|
-
"topics": [
|
|
86
|
+
"topics": [
|
|
87
|
+
|
|
88
|
+
]
|
|
69
89
|
},
|
|
70
90
|
{
|
|
71
91
|
"difficulty": 1,
|
|
72
92
|
"slug": "grade-school",
|
|
73
|
-
"topics": [
|
|
93
|
+
"topics": [
|
|
94
|
+
|
|
95
|
+
]
|
|
74
96
|
},
|
|
75
97
|
{
|
|
76
98
|
"difficulty": 1,
|
|
77
99
|
"slug": "robot-name",
|
|
78
|
-
"topics": [
|
|
100
|
+
"topics": [
|
|
101
|
+
|
|
102
|
+
]
|
|
79
103
|
},
|
|
80
104
|
{
|
|
81
105
|
"difficulty": 1,
|
|
82
106
|
"slug": "leap",
|
|
83
|
-
"topics": [
|
|
107
|
+
"topics": [
|
|
108
|
+
|
|
109
|
+
]
|
|
84
110
|
},
|
|
85
111
|
{
|
|
86
112
|
"difficulty": 1,
|
|
87
113
|
"slug": "etl",
|
|
88
|
-
"topics": [
|
|
114
|
+
"topics": [
|
|
115
|
+
|
|
116
|
+
]
|
|
89
117
|
},
|
|
90
118
|
{
|
|
91
119
|
"difficulty": 1,
|
|
92
120
|
"slug": "flatten-array",
|
|
93
|
-
"topics": [
|
|
121
|
+
"topics": [
|
|
122
|
+
|
|
123
|
+
]
|
|
94
124
|
},
|
|
95
125
|
{
|
|
96
126
|
"difficulty": 1,
|
|
97
127
|
"slug": "sublist",
|
|
98
|
-
"topics": [
|
|
128
|
+
"topics": [
|
|
129
|
+
|
|
130
|
+
]
|
|
99
131
|
},
|
|
100
132
|
{
|
|
101
133
|
"difficulty": 1,
|
|
102
134
|
"slug": "binary-search",
|
|
103
|
-
"topics": [
|
|
135
|
+
"topics": [
|
|
136
|
+
|
|
137
|
+
]
|
|
104
138
|
},
|
|
105
139
|
{
|
|
106
140
|
"difficulty": 1,
|
|
107
141
|
"slug": "perfect-numbers",
|
|
108
|
-
"topics": [
|
|
142
|
+
"topics": [
|
|
143
|
+
|
|
144
|
+
]
|
|
109
145
|
},
|
|
110
146
|
{
|
|
111
147
|
"difficulty": 1,
|
|
112
148
|
"slug": "meetup",
|
|
113
|
-
"topics": [
|
|
149
|
+
"topics": [
|
|
150
|
+
|
|
151
|
+
]
|
|
114
152
|
},
|
|
115
153
|
{
|
|
116
154
|
"difficulty": 1,
|
|
117
155
|
"slug": "space-age",
|
|
118
|
-
"topics": [
|
|
156
|
+
"topics": [
|
|
157
|
+
|
|
158
|
+
]
|
|
119
159
|
},
|
|
120
160
|
{
|
|
121
161
|
"difficulty": 1,
|
|
122
162
|
"slug": "grains",
|
|
123
|
-
"topics": [
|
|
163
|
+
"topics": [
|
|
164
|
+
|
|
165
|
+
]
|
|
124
166
|
},
|
|
125
167
|
{
|
|
126
168
|
"difficulty": 1,
|
|
127
169
|
"slug": "gigasecond",
|
|
128
|
-
"topics": [
|
|
170
|
+
"topics": [
|
|
171
|
+
|
|
172
|
+
]
|
|
129
173
|
},
|
|
130
174
|
{
|
|
131
175
|
"difficulty": 1,
|
|
132
176
|
"slug": "triangle",
|
|
133
|
-
"topics": [
|
|
177
|
+
"topics": [
|
|
178
|
+
|
|
179
|
+
]
|
|
134
180
|
},
|
|
135
181
|
{
|
|
136
182
|
"difficulty": 1,
|
|
137
183
|
"slug": "scrabble-score",
|
|
138
|
-
"topics": [
|
|
184
|
+
"topics": [
|
|
185
|
+
|
|
186
|
+
]
|
|
139
187
|
},
|
|
140
188
|
{
|
|
141
189
|
"difficulty": 1,
|
|
142
190
|
"slug": "roman-numerals",
|
|
143
|
-
"topics": [
|
|
191
|
+
"topics": [
|
|
192
|
+
|
|
193
|
+
]
|
|
144
194
|
},
|
|
145
195
|
{
|
|
146
196
|
"difficulty": 1,
|
|
147
197
|
"slug": "binary",
|
|
148
|
-
"topics": [
|
|
198
|
+
"topics": [
|
|
199
|
+
|
|
200
|
+
]
|
|
149
201
|
},
|
|
150
202
|
{
|
|
151
203
|
"difficulty": 1,
|
|
152
204
|
"slug": "trinary",
|
|
153
|
-
"topics": [
|
|
205
|
+
"topics": [
|
|
206
|
+
|
|
207
|
+
]
|
|
154
208
|
},
|
|
155
209
|
{
|
|
156
210
|
"difficulty": 1,
|
|
157
211
|
"slug": "prime-factors",
|
|
158
|
-
"topics": [
|
|
212
|
+
"topics": [
|
|
213
|
+
|
|
214
|
+
]
|
|
159
215
|
},
|
|
160
216
|
{
|
|
161
217
|
"difficulty": 1,
|
|
162
218
|
"slug": "raindrops",
|
|
163
|
-
"topics": [
|
|
219
|
+
"topics": [
|
|
220
|
+
|
|
221
|
+
]
|
|
164
222
|
},
|
|
165
223
|
{
|
|
166
224
|
"difficulty": 1,
|
|
167
225
|
"slug": "allergies",
|
|
168
|
-
"topics": [
|
|
226
|
+
"topics": [
|
|
227
|
+
|
|
228
|
+
]
|
|
169
229
|
},
|
|
170
230
|
{
|
|
171
231
|
"difficulty": 1,
|
|
172
232
|
"slug": "octal",
|
|
173
|
-
"topics": [
|
|
233
|
+
"topics": [
|
|
234
|
+
|
|
235
|
+
]
|
|
174
236
|
},
|
|
175
237
|
{
|
|
176
238
|
"difficulty": 1,
|
|
177
239
|
"slug": "strain",
|
|
178
|
-
"topics": [
|
|
240
|
+
"topics": [
|
|
241
|
+
|
|
242
|
+
]
|
|
179
243
|
},
|
|
180
244
|
{
|
|
181
245
|
"difficulty": 1,
|
|
182
246
|
"slug": "atbash-cipher",
|
|
183
|
-
"topics": [
|
|
247
|
+
"topics": [
|
|
248
|
+
|
|
249
|
+
]
|
|
184
250
|
},
|
|
185
251
|
{
|
|
186
252
|
"difficulty": 1,
|
|
187
253
|
"slug": "bank-account",
|
|
188
|
-
"topics": [
|
|
254
|
+
"topics": [
|
|
255
|
+
|
|
256
|
+
]
|
|
189
257
|
},
|
|
190
258
|
{
|
|
191
259
|
"difficulty": 1,
|
|
192
260
|
"slug": "crypto-square",
|
|
193
|
-
"topics": [
|
|
261
|
+
"topics": [
|
|
262
|
+
|
|
263
|
+
]
|
|
194
264
|
},
|
|
195
265
|
{
|
|
196
266
|
"difficulty": 1,
|
|
197
267
|
"slug": "pascals-triangle",
|
|
198
|
-
"topics": [
|
|
268
|
+
"topics": [
|
|
269
|
+
|
|
270
|
+
]
|
|
199
271
|
},
|
|
200
272
|
{
|
|
201
273
|
"difficulty": 1,
|
|
202
274
|
"slug": "sum-of-multiples",
|
|
203
|
-
"topics": [
|
|
275
|
+
"topics": [
|
|
276
|
+
|
|
277
|
+
]
|
|
204
278
|
},
|
|
205
279
|
{
|
|
206
280
|
"difficulty": 1,
|
|
207
281
|
"slug": "sieve",
|
|
208
|
-
"topics": [
|
|
282
|
+
"topics": [
|
|
283
|
+
|
|
284
|
+
]
|
|
209
285
|
},
|
|
210
286
|
{
|
|
211
287
|
"difficulty": 1,
|
|
212
288
|
"slug": "luhn",
|
|
213
|
-
"topics": [
|
|
289
|
+
"topics": [
|
|
290
|
+
|
|
291
|
+
]
|
|
214
292
|
},
|
|
215
293
|
{
|
|
216
294
|
"difficulty": 1,
|
|
217
295
|
"slug": "kindergarten-garden",
|
|
218
|
-
"topics": [
|
|
296
|
+
"topics": [
|
|
297
|
+
|
|
298
|
+
]
|
|
219
299
|
},
|
|
220
300
|
{
|
|
221
301
|
"difficulty": 1,
|
|
222
302
|
"slug": "robot-simulator",
|
|
223
|
-
"topics": [
|
|
303
|
+
"topics": [
|
|
304
|
+
|
|
305
|
+
]
|
|
224
306
|
},
|
|
225
307
|
{
|
|
226
308
|
"difficulty": 1,
|
|
227
309
|
"slug": "queen-attack",
|
|
228
|
-
"topics": [
|
|
310
|
+
"topics": [
|
|
311
|
+
|
|
312
|
+
]
|
|
229
313
|
},
|
|
230
314
|
{
|
|
231
315
|
"difficulty": 1,
|
|
232
316
|
"slug": "accumulate",
|
|
233
|
-
"topics": [
|
|
317
|
+
"topics": [
|
|
318
|
+
|
|
319
|
+
]
|
|
234
320
|
},
|
|
235
321
|
{
|
|
236
322
|
"difficulty": 1,
|
|
237
323
|
"slug": "binary-search-tree",
|
|
238
|
-
"topics": [
|
|
324
|
+
"topics": [
|
|
325
|
+
|
|
326
|
+
]
|
|
239
327
|
},
|
|
240
328
|
{
|
|
241
329
|
"difficulty": 1,
|
|
242
330
|
"slug": "difference-of-squares",
|
|
243
|
-
"topics": [
|
|
331
|
+
"topics": [
|
|
332
|
+
|
|
333
|
+
]
|
|
244
334
|
},
|
|
245
335
|
{
|
|
246
336
|
"difficulty": 1,
|
|
247
337
|
"slug": "hexadecimal",
|
|
248
|
-
"topics": [
|
|
338
|
+
"topics": [
|
|
339
|
+
|
|
340
|
+
]
|
|
249
341
|
},
|
|
250
342
|
{
|
|
251
343
|
"difficulty": 1,
|
|
252
344
|
"slug": "all-your-base",
|
|
253
|
-
"topics": [
|
|
345
|
+
"topics": [
|
|
346
|
+
|
|
347
|
+
]
|
|
254
348
|
},
|
|
255
349
|
{
|
|
256
350
|
"difficulty": 1,
|
|
257
351
|
"slug": "largest-series-product",
|
|
258
|
-
"topics": [
|
|
352
|
+
"topics": [
|
|
353
|
+
|
|
354
|
+
]
|
|
259
355
|
},
|
|
260
356
|
{
|
|
261
357
|
"difficulty": 1,
|
|
262
358
|
"slug": "pov",
|
|
263
|
-
"topics": [
|
|
359
|
+
"topics": [
|
|
360
|
+
|
|
361
|
+
]
|
|
264
362
|
},
|
|
265
363
|
{
|
|
266
364
|
"difficulty": 1,
|
|
267
365
|
"slug": "bracket-push",
|
|
268
|
-
"topics": [
|
|
366
|
+
"topics": [
|
|
367
|
+
|
|
368
|
+
]
|
|
269
369
|
},
|
|
270
370
|
{
|
|
271
371
|
"difficulty": 1,
|
|
272
372
|
"slug": "minesweeper",
|
|
273
|
-
"topics": [
|
|
373
|
+
"topics": [
|
|
374
|
+
|
|
375
|
+
]
|
|
274
376
|
},
|
|
275
377
|
{
|
|
276
378
|
"difficulty": 1,
|
|
277
379
|
"slug": "change",
|
|
278
|
-
"topics": [
|
|
380
|
+
"topics": [
|
|
381
|
+
|
|
382
|
+
]
|
|
279
383
|
},
|
|
280
384
|
{
|
|
281
385
|
"difficulty": 1,
|
|
282
386
|
"slug": "pangram",
|
|
283
|
-
"topics": [
|
|
387
|
+
"topics": [
|
|
388
|
+
|
|
389
|
+
]
|
|
284
390
|
},
|
|
285
391
|
{
|
|
286
392
|
"difficulty": 1,
|
|
287
393
|
"slug": "wordy",
|
|
288
|
-
"topics": [
|
|
394
|
+
"topics": [
|
|
395
|
+
|
|
396
|
+
]
|
|
289
397
|
},
|
|
290
398
|
{
|
|
291
399
|
"difficulty": 1,
|
|
292
400
|
"slug": "isogram",
|
|
293
|
-
"topics": [
|
|
401
|
+
"topics": [
|
|
402
|
+
|
|
403
|
+
]
|
|
294
404
|
},
|
|
295
405
|
{
|
|
296
406
|
"difficulty": 1,
|
|
297
407
|
"slug": "acronym",
|
|
298
|
-
"topics": [
|
|
408
|
+
"topics": [
|
|
409
|
+
|
|
410
|
+
]
|
|
299
411
|
},
|
|
300
412
|
{
|
|
301
413
|
"difficulty": 1,
|
|
302
414
|
"slug": "nth-prime",
|
|
303
|
-
"topics": [
|
|
415
|
+
"topics": [
|
|
416
|
+
|
|
417
|
+
]
|
|
304
418
|
},
|
|
305
419
|
{
|
|
306
420
|
"difficulty": 1,
|
|
307
421
|
"slug": "pig-latin",
|
|
308
|
-
"topics": [
|
|
422
|
+
"topics": [
|
|
423
|
+
|
|
424
|
+
]
|
|
309
425
|
},
|
|
310
426
|
{
|
|
311
427
|
"difficulty": 1,
|
|
312
428
|
"slug": "secret-handshake",
|
|
313
|
-
"topics": [
|
|
429
|
+
"topics": [
|
|
430
|
+
|
|
431
|
+
]
|
|
314
432
|
}
|
|
315
433
|
]
|
|
316
434
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
(def default-students ["Alice" "Bob" "Charlie" "David" "Eve" "Fred" "Ginny"
|
|
4
4
|
"Harriet" "Ileana" "Joseph" "Kincaid" "Larry"])
|
|
5
5
|
|
|
6
|
-
(def seeds {
|
|
6
|
+
(def seeds {\G :grass \C :clover \R :radishes \V :violets})
|
|
7
7
|
|
|
8
8
|
(defn row-to-seeds [row-string]
|
|
9
9
|
(map seeds row-string))
|
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
(defn garden
|
|
15
15
|
([string]
|
|
16
|
-
|
|
16
|
+
(garden string default-students))
|
|
17
17
|
([string students]
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
(let [students (map #(keyword (clojure.string/lower-case %1)) (sort students))
|
|
19
|
+
[front back] (map #(partition 2 %1)
|
|
20
|
+
(map row-to-seeds (garden-to-rows string)))]
|
|
21
|
+
(->> (interleave front back)
|
|
22
|
+
(partition 2)
|
|
23
|
+
(map flatten)
|
|
24
|
+
(map vec)
|
|
25
|
+
(zipmap students)))))
|