trackler 2.1.0.36 → 2.1.0.37
Sign up to get free protection for your applications and to get access to all the features.
- 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)))))
|