trackler 2.2.1.17 → 2.2.1.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/clojure/exercises/pangram/test/pangram_test.clj +4 -3
- data/tracks/java/exercises/largest-series-product/src/example/java/LargestSeriesProductCalculator.java +1 -1
- data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +1 -1
- data/tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java +3 -0
- data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +33 -0
- data/tracks/lisp/docs/SNIPPET.txt +11 -0
- data/tracks/perl6/config.json +1 -0
- data/tracks/purescript/docs/ABOUT.md +5 -12
- data/tracks/purescript/docs/LEARNING.md +11 -0
- data/tracks/purescript/exercises/hello-world/README.md +13 -0
- data/tracks/r/config.json +12 -0
- data/tracks/r/exercises/allergies/README.md +47 -0
- data/tracks/r/exercises/allergies/allergies.R +11 -0
- data/tracks/r/exercises/allergies/example.R +32 -0
- data/tracks/r/exercises/allergies/test_allergies.R +84 -0
- data/tracks/scala/config.json +190 -190
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b38ae6d8516dd187b9f0fba21283c9736c8c5fb4
|
4
|
+
data.tar.gz: 95ab4593a96107ba91aa766aa1bf6679f1d43270
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26bf3c4e1004c4e8ff1ded81043ca7795e5e4ee4c4fe224e7bccb763d140db80d43745ab47c3e066ca5a6b41d03f9038b26c01d74aa2b17ed0beff6c7630ec67
|
7
|
+
data.tar.gz: aca1b722e8f3ec0f75160c4441a9d4075732802b4559de1741e7cf072076d0b50ccd7e7ed45764b13d6deda8abd7f57282cc7a2d0f3f452b47479ecf3c2d83a4
|
data/lib/trackler/version.rb
CHANGED
@@ -32,6 +32,7 @@
|
|
32
32
|
(deftest mixed-case-and-punctuation
|
33
33
|
(is (pangram? "\"Five quacking Zephyrs jolt my wax bed.\"")))
|
34
34
|
|
35
|
-
(deftest
|
36
|
-
(is
|
37
|
-
|
35
|
+
(deftest upper-and-lower-not-counted-separately
|
36
|
+
(is
|
37
|
+
(false?
|
38
|
+
(pangram? "the quick brown fox jumps over with lazy FX"))))
|
@@ -36,7 +36,7 @@ public final class LargestSeriesProductCalculator {
|
|
36
36
|
if (stringToSearch == null) {
|
37
37
|
throw new IllegalArgumentException("String to search must be non-null.");
|
38
38
|
} else if (!stringToSearch.chars().allMatch(Character::isDigit)) {
|
39
|
-
throw new IllegalArgumentException("String to search may only
|
39
|
+
throw new IllegalArgumentException("String to search may only contain digits.");
|
40
40
|
}
|
41
41
|
}
|
42
42
|
|
@@ -186,7 +186,7 @@ public class LargestSeriesProductCalculatorTest {
|
|
186
186
|
@Test
|
187
187
|
public void testStringToSearchContainingNonDigitCharacterIsRejected() {
|
188
188
|
expectedException.expect(IllegalArgumentException.class);
|
189
|
-
expectedException.expectMessage("String to search may only
|
189
|
+
expectedException.expectMessage("String to search may only contain digits.");
|
190
190
|
|
191
191
|
new LargestSeriesProductCalculator("1234a5");
|
192
192
|
}
|
@@ -2,9 +2,18 @@ import org.junit.Assert;
|
|
2
2
|
import org.junit.Before;
|
3
3
|
import org.junit.Ignore;
|
4
4
|
import org.junit.Test;
|
5
|
+
import org.junit.rules.ExpectedException;
|
6
|
+
import org.junit.Rule;
|
5
7
|
|
6
8
|
public class RnaTranscriptionTest {
|
7
9
|
|
10
|
+
/*
|
11
|
+
version: 2.0.0
|
12
|
+
*/
|
13
|
+
|
14
|
+
@Rule
|
15
|
+
public ExpectedException thrown = ExpectedException.none();
|
16
|
+
|
8
17
|
private RnaTranscription rnaTranscription;
|
9
18
|
|
10
19
|
@Before
|
@@ -46,4 +55,28 @@ public class RnaTranscriptionTest {
|
|
46
55
|
public void testRnaTranscription() {
|
47
56
|
Assert.assertEquals("UGCACCAGAAUU", rnaTranscription.transcribe("ACGTGGTCTTAA"));
|
48
57
|
}
|
58
|
+
|
59
|
+
@Ignore("Remove to run test")
|
60
|
+
@Test
|
61
|
+
public void testRnaTranscriptionOfRnaThrowsAnError() {
|
62
|
+
thrown.expect(IllegalArgumentException.class);
|
63
|
+
thrown.expectMessage("Invalid input");
|
64
|
+
rnaTranscription.transcribe("U");
|
65
|
+
}
|
66
|
+
|
67
|
+
@Ignore("Remove to run test")
|
68
|
+
@Test
|
69
|
+
public void testRnaTranscriptionOfInvalidInputThrowsAnError() {
|
70
|
+
thrown.expect(IllegalArgumentException.class);
|
71
|
+
thrown.expectMessage("Invalid input");
|
72
|
+
rnaTranscription.transcribe("BFV");
|
73
|
+
}
|
74
|
+
|
75
|
+
@Ignore("Remove to run test")
|
76
|
+
@Test
|
77
|
+
public void testRnaTranscriptionOfPartiallyInvalidInput() {
|
78
|
+
thrown.expect(IllegalArgumentException.class);
|
79
|
+
thrown.expectMessage("Invalid input");
|
80
|
+
rnaTranscription.transcribe("GCVV");
|
81
|
+
}
|
49
82
|
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
(defpackage #:hamming
|
2
|
+
(:use #:common-lisp)
|
3
|
+
(:export #:distance))
|
4
|
+
|
5
|
+
(in-package #:hamming)
|
6
|
+
|
7
|
+
(defun distance (str1 str2 &key (test #'char=))
|
8
|
+
"Number of positional differences in two equal length strings."
|
9
|
+
(when (= (length str1) (length str2))
|
10
|
+
(count nil
|
11
|
+
(map 'list test str1 str2))))
|
data/tracks/perl6/config.json
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
"language": "Perl 6",
|
3
3
|
"checklist_issue": 30,
|
4
4
|
"active": true,
|
5
|
+
"blurb": "Forget everything you know or think you know about Perl. Perl 6 is a production ready new emerging language that is highly expressive, feature-packed and optimized for fun.",
|
5
6
|
"test_pattern": ".*\\.t$",
|
6
7
|
"foregone": [
|
7
8
|
|
@@ -1,16 +1,9 @@
|
|
1
|
-
PureScript is a purely functional, statically-typed programming language with
|
2
|
-
type inference.
|
1
|
+
PureScript is a purely functional, statically-typed programming language with global type inference.
|
3
2
|
|
4
|
-
**Functional** means that functions are first-class
|
3
|
+
**Functional** means that functions are first-class values. Functions are an important and powerful tool for abstraction. In PureScript, computation is modeled as the evaluation of expressions made up of function applications, rather than as the execution of a sequence of instructions.
|
5
4
|
|
6
|
-
**Purely Functional** means
|
7
|
-
Every function will always return the same value for a given argument
|
8
|
-
and will do nothing else.
|
5
|
+
**Purely Functional** means that it is possible to tell if a computation has side-effects or not, meaning that if a computation changes a global variable, reads from input, writes to a socket, etc. it will be reflected in the type of the computation.
|
9
6
|
|
10
|
-
**Statically-typed** means that
|
11
|
-
time--like those in Java, C++ or C#--instead of holding data of any
|
12
|
-
type like those in Python, Ruby or JavaScript.
|
7
|
+
**Statically-typed** means that all computations have a type that is known before running the program.
|
13
8
|
|
14
|
-
**
|
15
|
-
type of an identifier by itself so you don't have to specify it.
|
16
|
-
Scala and later versions of C# both do this.
|
9
|
+
**Global type inference** means that the compiler can figure out the type of computations in the entire program without needing the programmer to specify the type.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
The [PureScript Documentation Repo](https://github.com/purescript/documentation/)
|
2
|
+
should be your first step if you are interested in learning PureScript.
|
3
|
+
|
4
|
+
In there you'll find:
|
5
|
+
|
6
|
+
- A getting started guide
|
7
|
+
- A link to the free book 'PureScript by Example' written by PureScript's author Phil Freeman
|
8
|
+
- Various tools to support your PureScript development
|
9
|
+
- Articles and videos about PureScript and it's ecosystem
|
10
|
+
- Information about the PureScript community and where to ask for help
|
11
|
+
- And more
|
@@ -13,6 +13,19 @@ The objectives are simple:
|
|
13
13
|
- Submit your solution and check it at the website.
|
14
14
|
|
15
15
|
If everything goes well, you will be ready to fetch your first real exercise.
|
16
|
+
|
17
|
+
## Tips
|
18
|
+
|
19
|
+
Purescript setup: `npm install -g purescript pulp bower`
|
20
|
+
|
21
|
+
Install project dependencies: `bower install` (inside the "hello-world" directory)
|
22
|
+
|
23
|
+
Building: `pulp build` (gotta do this once before the PureScript editor plugins will work)
|
24
|
+
|
25
|
+
Running the test: `pulp test`
|
26
|
+
|
27
|
+
Submitting: `exercism submit src/HelloWorld.purs`
|
28
|
+
|
16
29
|
## Source
|
17
30
|
|
18
31
|
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
data/tracks/r/config.json
CHANGED
@@ -314,6 +314,18 @@
|
|
314
314
|
"control_flow_conditionals",
|
315
315
|
"recursion"
|
316
316
|
]
|
317
|
+
},
|
318
|
+
{
|
319
|
+
"uuid": "2f7b585f-f82f-4dca-9588-2df3250184e6",
|
320
|
+
"slug": "allergies",
|
321
|
+
"core": false,
|
322
|
+
"unlocked_by": "sum-of-multiples",
|
323
|
+
"difficulty": 3,
|
324
|
+
"topics": [
|
325
|
+
"lists",
|
326
|
+
"filtering",
|
327
|
+
"control_flow_conditionals"
|
328
|
+
]
|
317
329
|
}
|
318
330
|
]
|
319
331
|
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# Allergies
|
2
|
+
|
3
|
+
Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
|
4
|
+
|
5
|
+
An allergy test produces a single numeric score which contains the
|
6
|
+
information about all the allergies the person has (that they were
|
7
|
+
tested for).
|
8
|
+
|
9
|
+
The list of items (and their value) that were tested are:
|
10
|
+
|
11
|
+
* eggs (1)
|
12
|
+
* peanuts (2)
|
13
|
+
* shellfish (4)
|
14
|
+
* strawberries (8)
|
15
|
+
* tomatoes (16)
|
16
|
+
* chocolate (32)
|
17
|
+
* pollen (64)
|
18
|
+
* cats (128)
|
19
|
+
|
20
|
+
So if Tom is allergic to peanuts and chocolate, he gets a score of 34.
|
21
|
+
|
22
|
+
Now, given just that score of 34, your program should be able to say:
|
23
|
+
|
24
|
+
- Whether Tom is allergic to any one of those allergens listed above.
|
25
|
+
- All the allergens Tom is allergic to.
|
26
|
+
|
27
|
+
Note: a given score may include allergens **not** listed above (i.e.
|
28
|
+
allergens that score 256, 512, 1024, etc.). Your program should
|
29
|
+
ignore those components of the score. For example, if the allergy
|
30
|
+
score is 257, your program should only report the eggs (1) allergy.
|
31
|
+
|
32
|
+
|
33
|
+
## Installation
|
34
|
+
See [this guide](https://github.com/exercism/xr/blob/master/docs/INSTALLATION.md) for instructions on how to setup your local R environment.
|
35
|
+
|
36
|
+
## How to implement your solution
|
37
|
+
In each problem folder, there is a file named `<exercise_name>.R` containing a function that returns a `NULL` value. Place your implementation inside the body of the function.
|
38
|
+
|
39
|
+
## How to run tests
|
40
|
+
Inside of RStudio, simply execute the `test_<exercise_name>.R` script. This can be conveniently done with [testthat's `auto_test` function](https://www.rdocumentation.org/packages/testthat/topics/auto_test). Because exercism code and tests are in the same folder, use this same path for both `code_path` and `test_path` parameters. On the command-line, you can also run `Rscript test_<exercise_name>.R`.
|
41
|
+
|
42
|
+
## Source
|
43
|
+
|
44
|
+
Jumpstart Lab Warm-up [http://jumpstartlab.com](http://jumpstartlab.com)
|
45
|
+
|
46
|
+
## Submitting Incomplete Solutions
|
47
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,32 @@
|
|
1
|
+
library(magrittr)
|
2
|
+
|
3
|
+
allergy <- function(num) {
|
4
|
+
|
5
|
+
allergy_list <- c(
|
6
|
+
"eggs",
|
7
|
+
"peanuts",
|
8
|
+
"shellfish",
|
9
|
+
"strawberries",
|
10
|
+
"tomatoes",
|
11
|
+
"chocolate",
|
12
|
+
"pollen",
|
13
|
+
"cats"
|
14
|
+
)
|
15
|
+
|
16
|
+
check_allergy <- function(allergy, val) {
|
17
|
+
intToBits(val)[which(allergy_list == allergy)] %>% as.logical()
|
18
|
+
}
|
19
|
+
|
20
|
+
allergies <- sapply(allergy_list, check_allergy, num)
|
21
|
+
|
22
|
+
structure(allergy_list[allergies], class = "allergy")
|
23
|
+
|
24
|
+
}
|
25
|
+
|
26
|
+
allergic_to <- function(allergy_object, allergy) {
|
27
|
+
allergy %in% allergy_object
|
28
|
+
}
|
29
|
+
|
30
|
+
list_allergies <- function(allergy_object) {
|
31
|
+
as.vector(allergy_object)
|
32
|
+
}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
source("./allergies.R")
|
2
|
+
library(testthat)
|
3
|
+
|
4
|
+
test_that("no allergies means not allergic", {
|
5
|
+
x <- allergy(0)
|
6
|
+
expect_false(allergic_to(x, "peanuts"))
|
7
|
+
expect_false(allergic_to(x, "cats"))
|
8
|
+
expect_false(allergic_to(x, "strawberries"))
|
9
|
+
})
|
10
|
+
|
11
|
+
test_that("is allergic to eggs", {
|
12
|
+
x <- allergy(1)
|
13
|
+
expect_true(allergic_to(x, "eggs"))
|
14
|
+
})
|
15
|
+
|
16
|
+
test_that("allergic to eggs in addition to other stuff", {
|
17
|
+
x <- allergy(5)
|
18
|
+
expect_true(allergic_to(x, "eggs"))
|
19
|
+
expect_true(allergic_to(x, "shellfish"))
|
20
|
+
expect_false(allergic_to(x, "strawberries"))
|
21
|
+
})
|
22
|
+
|
23
|
+
test_that("no allergies at all", {
|
24
|
+
x <- allergy(0)
|
25
|
+
expect_equal(list_allergies(x), character())
|
26
|
+
})
|
27
|
+
|
28
|
+
test_that("allergic to just eggs", {
|
29
|
+
x <- allergy(1)
|
30
|
+
expect_equal(list_allergies(x), c("eggs"))
|
31
|
+
})
|
32
|
+
|
33
|
+
test_that("allergic to just peanuts", {
|
34
|
+
x <- allergy(2)
|
35
|
+
expect_equal(list_allergies(x), c("peanuts"))
|
36
|
+
})
|
37
|
+
|
38
|
+
test_that("allergic to just strawberries", {
|
39
|
+
x <- allergy(8)
|
40
|
+
expect_equal(list_allergies(x), c("strawberries"))
|
41
|
+
})
|
42
|
+
|
43
|
+
test_that("allergic to eggs and peanuts", {
|
44
|
+
x <- allergy(3)
|
45
|
+
expect_true(setequal(
|
46
|
+
list_allergies(x),
|
47
|
+
c("eggs", "peanuts"))
|
48
|
+
)
|
49
|
+
})
|
50
|
+
|
51
|
+
test_that("allergic to more than eggs but not peanuts", {
|
52
|
+
x <- allergy(5)
|
53
|
+
expect_true(setequal(
|
54
|
+
list_allergies(x),
|
55
|
+
c("eggs", "shellfish"))
|
56
|
+
)
|
57
|
+
})
|
58
|
+
|
59
|
+
test_that("allergic to lots of stuff", {
|
60
|
+
x <- allergy(248)
|
61
|
+
expect_true(setequal(
|
62
|
+
list_allergies(x),
|
63
|
+
c("strawberries", "tomatoes", "chocolate", "pollen", "cats"))
|
64
|
+
)
|
65
|
+
})
|
66
|
+
|
67
|
+
test_that("allergic to everything", {
|
68
|
+
x <- allergy(255)
|
69
|
+
expect_true(setequal(
|
70
|
+
list_allergies(x),
|
71
|
+
c("eggs", "peanuts", "shellfish", "strawberries", "tomatoes",
|
72
|
+
"chocolate", "pollen", "cats")))
|
73
|
+
})
|
74
|
+
|
75
|
+
test_that("ignore non allergen score parts", {
|
76
|
+
x <- allergy(509)
|
77
|
+
expect_true(setequal(
|
78
|
+
list_allergies(x),
|
79
|
+
c("eggs", "shellfish", "strawberries", "tomatoes",
|
80
|
+
"chocolate", "pollen", "cats"))
|
81
|
+
)
|
82
|
+
})
|
83
|
+
|
84
|
+
message("All tests passed for exercise: allergies")
|
data/tracks/scala/config.json
CHANGED
@@ -5,29 +5,17 @@
|
|
5
5
|
{
|
6
6
|
"uuid": "1fadd9c3-a7c9-4355-aef9-82e0df3d45b9",
|
7
7
|
"slug": "hello-world",
|
8
|
-
"core":
|
8
|
+
"core": true,
|
9
9
|
"unlocked_by": null,
|
10
10
|
"difficulty": 1,
|
11
11
|
"topics": [
|
12
12
|
"Strings"
|
13
13
|
]
|
14
14
|
},
|
15
|
-
{
|
16
|
-
"uuid": "57b76aba-a485-464d-84ba-e9a445b25be6",
|
17
|
-
"slug": "bob",
|
18
|
-
"core": false,
|
19
|
-
"unlocked_by": null,
|
20
|
-
"difficulty": 1,
|
21
|
-
"topics": [
|
22
|
-
"Strings",
|
23
|
-
"Control-flow (if-else statements)",
|
24
|
-
"Pattern matching"
|
25
|
-
]
|
26
|
-
},
|
27
15
|
{
|
28
16
|
"uuid": "7221946d-6321-4cec-8e64-050abae3ccd7",
|
29
17
|
"slug": "sum-of-multiples",
|
30
|
-
"core":
|
18
|
+
"core": true,
|
31
19
|
"unlocked_by": null,
|
32
20
|
"difficulty": 1,
|
33
21
|
"topics": [
|
@@ -38,7 +26,7 @@
|
|
38
26
|
{
|
39
27
|
"uuid": "b600cda0-f5b8-45b3-bfd0-7e0c19a0b073",
|
40
28
|
"slug": "leap",
|
41
|
-
"core":
|
29
|
+
"core": true,
|
42
30
|
"unlocked_by": null,
|
43
31
|
"difficulty": 1,
|
44
32
|
"topics": [
|
@@ -46,10 +34,22 @@
|
|
46
34
|
"Mathematics"
|
47
35
|
]
|
48
36
|
},
|
37
|
+
{
|
38
|
+
"uuid": "57b76aba-a485-464d-84ba-e9a445b25be6",
|
39
|
+
"slug": "bob",
|
40
|
+
"core": true,
|
41
|
+
"unlocked_by": null,
|
42
|
+
"difficulty": 1,
|
43
|
+
"topics": [
|
44
|
+
"Strings",
|
45
|
+
"Control-flow (if-else statements)",
|
46
|
+
"Pattern matching"
|
47
|
+
]
|
48
|
+
},
|
49
49
|
{
|
50
50
|
"uuid": "f147966d-97ec-4479-8679-8cad942b499a",
|
51
51
|
"slug": "space-age",
|
52
|
-
"core":
|
52
|
+
"core": true,
|
53
53
|
"unlocked_by": null,
|
54
54
|
"difficulty": 1,
|
55
55
|
"topics": [
|
@@ -58,6 +58,115 @@
|
|
58
58
|
"Domain-specific languages"
|
59
59
|
]
|
60
60
|
},
|
61
|
+
{
|
62
|
+
"uuid": "b469a197-adf4-4d02-b129-07f993104054",
|
63
|
+
"slug": "grade-school",
|
64
|
+
"core": true,
|
65
|
+
"unlocked_by": null,
|
66
|
+
"difficulty": 2,
|
67
|
+
"topics": [
|
68
|
+
"Maps",
|
69
|
+
"Sequences",
|
70
|
+
"Sorting"
|
71
|
+
]
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"uuid": "6d136d51-390a-46a7-b42b-fdecff7b622a",
|
75
|
+
"slug": "accumulate",
|
76
|
+
"core": true,
|
77
|
+
"unlocked_by": null,
|
78
|
+
"difficulty": 2,
|
79
|
+
"topics": [
|
80
|
+
"Generics",
|
81
|
+
"Lists",
|
82
|
+
"Transforming"
|
83
|
+
]
|
84
|
+
},
|
85
|
+
{
|
86
|
+
"uuid": "5a31217f-02fd-4be4-b64f-7a93f36f5140",
|
87
|
+
"slug": "hamming",
|
88
|
+
"core": true,
|
89
|
+
"unlocked_by": null,
|
90
|
+
"difficulty": 3,
|
91
|
+
"topics": [
|
92
|
+
"Strings",
|
93
|
+
"Filtering",
|
94
|
+
"Optional values"
|
95
|
+
]
|
96
|
+
},
|
97
|
+
{
|
98
|
+
"uuid": "d21f16ce-8e6e-436e-918b-e973cfc7c2a0",
|
99
|
+
"slug": "etl",
|
100
|
+
"core": true,
|
101
|
+
"unlocked_by": null,
|
102
|
+
"difficulty": 3,
|
103
|
+
"topics": [
|
104
|
+
"Lists",
|
105
|
+
"Maps",
|
106
|
+
"Sequences",
|
107
|
+
"Strings",
|
108
|
+
"Transforming"
|
109
|
+
]
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"uuid": "612b8880-1dd1-410d-b530-c66ec9edc1b3",
|
113
|
+
"slug": "perfect-numbers",
|
114
|
+
"core": true,
|
115
|
+
"unlocked_by": null,
|
116
|
+
"difficulty": 3,
|
117
|
+
"topics": [
|
118
|
+
"Discriminated unions",
|
119
|
+
"Enumerations",
|
120
|
+
"Integers",
|
121
|
+
"Mathematics"
|
122
|
+
]
|
123
|
+
},
|
124
|
+
{
|
125
|
+
"uuid": "e810d2eb-5c90-4135-8db8-0bda54a33d2e",
|
126
|
+
"slug": "secret-handshake",
|
127
|
+
"core": true,
|
128
|
+
"unlocked_by": null,
|
129
|
+
"difficulty": 3,
|
130
|
+
"topics": [
|
131
|
+
"Lists",
|
132
|
+
"Strings",
|
133
|
+
"Bitwise operations"
|
134
|
+
]
|
135
|
+
},
|
136
|
+
{
|
137
|
+
"uuid": "261f75c1-df67-4c62-a2e9-ce13550f5de3",
|
138
|
+
"slug": "robot-simulator",
|
139
|
+
"core": true,
|
140
|
+
"unlocked_by": null,
|
141
|
+
"difficulty": 3,
|
142
|
+
"topics": [
|
143
|
+
"Enumerations",
|
144
|
+
"Tuples"
|
145
|
+
]
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"uuid": "c6c37479-a030-44ba-9da5-97eb77233ac6",
|
149
|
+
"slug": "matrix",
|
150
|
+
"core": true,
|
151
|
+
"unlocked_by": null,
|
152
|
+
"difficulty": 4,
|
153
|
+
"topics": [
|
154
|
+
"Strings",
|
155
|
+
"Matrices",
|
156
|
+
"Parsing",
|
157
|
+
"Vectors"
|
158
|
+
]
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"uuid": "5ce09233-9ec1-4422-aa97-2d90ea67146b",
|
162
|
+
"slug": "book-store",
|
163
|
+
"core": true,
|
164
|
+
"unlocked_by": null,
|
165
|
+
"difficulty": 5,
|
166
|
+
"topics": [
|
167
|
+
"Recursion"
|
168
|
+
]
|
169
|
+
},
|
61
170
|
{
|
62
171
|
"uuid": "4c3710dc-fac2-4056-b4ac-945b67c08068",
|
63
172
|
"slug": "gigasecond",
|
@@ -91,35 +200,11 @@
|
|
91
200
|
"Strings"
|
92
201
|
]
|
93
202
|
},
|
94
|
-
{
|
95
|
-
"uuid": "b469a197-adf4-4d02-b129-07f993104054",
|
96
|
-
"slug": "grade-school",
|
97
|
-
"core": false,
|
98
|
-
"unlocked_by": null,
|
99
|
-
"difficulty": 2,
|
100
|
-
"topics": [
|
101
|
-
"Maps",
|
102
|
-
"Sequences",
|
103
|
-
"Sorting"
|
104
|
-
]
|
105
|
-
},
|
106
|
-
{
|
107
|
-
"uuid": "6d136d51-390a-46a7-b42b-fdecff7b622a",
|
108
|
-
"slug": "accumulate",
|
109
|
-
"core": false,
|
110
|
-
"unlocked_by": null,
|
111
|
-
"difficulty": 2,
|
112
|
-
"topics": [
|
113
|
-
"Generics",
|
114
|
-
"Lists",
|
115
|
-
"Transforming"
|
116
|
-
]
|
117
|
-
},
|
118
203
|
{
|
119
204
|
"uuid": "54ff0017-7c53-4e83-a3bd-aff2953185b7",
|
120
205
|
"slug": "raindrops",
|
121
206
|
"core": false,
|
122
|
-
"unlocked_by":
|
207
|
+
"unlocked_by": "accumulate",
|
123
208
|
"difficulty": 2,
|
124
209
|
"topics": [
|
125
210
|
"Strings",
|
@@ -127,23 +212,11 @@
|
|
127
212
|
"Transforming"
|
128
213
|
]
|
129
214
|
},
|
130
|
-
{
|
131
|
-
"uuid": "5a31217f-02fd-4be4-b64f-7a93f36f5140",
|
132
|
-
"slug": "hamming",
|
133
|
-
"core": false,
|
134
|
-
"unlocked_by": null,
|
135
|
-
"difficulty": 3,
|
136
|
-
"topics": [
|
137
|
-
"Strings",
|
138
|
-
"Filtering",
|
139
|
-
"Optional values"
|
140
|
-
]
|
141
|
-
},
|
142
215
|
{
|
143
216
|
"uuid": "d7f7b64e-1dba-400e-a9c1-acd521d21753",
|
144
217
|
"slug": "phone-number",
|
145
218
|
"core": false,
|
146
|
-
"unlocked_by":
|
219
|
+
"unlocked_by": "hamming",
|
147
220
|
"difficulty": 3,
|
148
221
|
"topics": [
|
149
222
|
"Optional values",
|
@@ -156,7 +229,7 @@
|
|
156
229
|
"uuid": "d3a10b82-ae65-4a99-968d-4f1bec62b88a",
|
157
230
|
"slug": "strain",
|
158
231
|
"core": false,
|
159
|
-
"unlocked_by":
|
232
|
+
"unlocked_by": "hamming",
|
160
233
|
"difficulty": 3,
|
161
234
|
"topics": [
|
162
235
|
"Generics",
|
@@ -168,32 +241,18 @@
|
|
168
241
|
"uuid": "d06505fb-3844-481a-bf7a-4e05545119f0",
|
169
242
|
"slug": "robot-name",
|
170
243
|
"core": false,
|
171
|
-
"unlocked_by":
|
244
|
+
"unlocked_by": "hello-world",
|
172
245
|
"difficulty": 3,
|
173
246
|
"topics": [
|
174
247
|
"Strings",
|
175
248
|
"Randomness"
|
176
249
|
]
|
177
250
|
},
|
178
|
-
{
|
179
|
-
"uuid": "d21f16ce-8e6e-436e-918b-e973cfc7c2a0",
|
180
|
-
"slug": "etl",
|
181
|
-
"core": false,
|
182
|
-
"unlocked_by": null,
|
183
|
-
"difficulty": 3,
|
184
|
-
"topics": [
|
185
|
-
"Lists",
|
186
|
-
"Maps",
|
187
|
-
"Sequences",
|
188
|
-
"Strings",
|
189
|
-
"Transforming"
|
190
|
-
]
|
191
|
-
},
|
192
251
|
{
|
193
252
|
"uuid": "39b2350c-60b5-4da0-9fb9-26f75a4bad6d",
|
194
253
|
"slug": "grains",
|
195
254
|
"core": false,
|
196
|
-
"unlocked_by":
|
255
|
+
"unlocked_by": "hamming",
|
197
256
|
"difficulty": 3,
|
198
257
|
"topics": [
|
199
258
|
"Optional values",
|
@@ -204,7 +263,7 @@
|
|
204
263
|
"uuid": "a4797d24-9293-41b2-b630-3ac9e3840d47",
|
205
264
|
"slug": "scrabble-score",
|
206
265
|
"core": false,
|
207
|
-
"unlocked_by":
|
266
|
+
"unlocked_by": "accumulate",
|
208
267
|
"difficulty": 3,
|
209
268
|
"topics": [
|
210
269
|
"Strings",
|
@@ -215,7 +274,7 @@
|
|
215
274
|
"uuid": "fc58b128-24a8-48e7-90db-b4843fbdf40a",
|
216
275
|
"slug": "rna-transcription",
|
217
276
|
"core": false,
|
218
|
-
"unlocked_by":
|
277
|
+
"unlocked_by": "hamming",
|
219
278
|
"difficulty": 3,
|
220
279
|
"topics": [
|
221
280
|
"Optional values",
|
@@ -227,30 +286,17 @@
|
|
227
286
|
"uuid": "2be75924-fce4-49fa-b52e-6cdcf222b283",
|
228
287
|
"slug": "triangle",
|
229
288
|
"core": false,
|
230
|
-
"unlocked_by":
|
289
|
+
"unlocked_by": "leap",
|
231
290
|
"difficulty": 3,
|
232
291
|
"topics": [
|
233
292
|
"Mathematics"
|
234
293
|
]
|
235
294
|
},
|
236
|
-
{
|
237
|
-
"uuid": "612b8880-1dd1-410d-b530-c66ec9edc1b3",
|
238
|
-
"slug": "perfect-numbers",
|
239
|
-
"core": false,
|
240
|
-
"unlocked_by": null,
|
241
|
-
"difficulty": 3,
|
242
|
-
"topics": [
|
243
|
-
"Discriminated unions",
|
244
|
-
"Enumerations",
|
245
|
-
"Integers",
|
246
|
-
"Mathematics"
|
247
|
-
]
|
248
|
-
},
|
249
295
|
{
|
250
296
|
"uuid": "f653decb-f7fa-47ff-81a6-2b3981261ea7",
|
251
297
|
"slug": "binary-search",
|
252
298
|
"core": false,
|
253
|
-
"unlocked_by":
|
299
|
+
"unlocked_by": "hamming",
|
254
300
|
"difficulty": 3,
|
255
301
|
"topics": [
|
256
302
|
"Searching",
|
@@ -258,23 +304,11 @@
|
|
258
304
|
"Optional values"
|
259
305
|
]
|
260
306
|
},
|
261
|
-
{
|
262
|
-
"uuid": "e810d2eb-5c90-4135-8db8-0bda54a33d2e",
|
263
|
-
"slug": "secret-handshake",
|
264
|
-
"core": false,
|
265
|
-
"unlocked_by": null,
|
266
|
-
"difficulty": 3,
|
267
|
-
"topics": [
|
268
|
-
"Lists",
|
269
|
-
"Strings",
|
270
|
-
"Bitwise operations"
|
271
|
-
]
|
272
|
-
},
|
273
307
|
{
|
274
308
|
"uuid": "9f5ee7aa-943b-4151-8530-def1428fc00f",
|
275
309
|
"slug": "sieve",
|
276
310
|
"core": false,
|
277
|
-
"unlocked_by":
|
311
|
+
"unlocked_by": "sum-of-multiples",
|
278
312
|
"difficulty": 3,
|
279
313
|
"topics": [
|
280
314
|
"Filtering",
|
@@ -282,22 +316,11 @@
|
|
282
316
|
"Lists"
|
283
317
|
]
|
284
318
|
},
|
285
|
-
{
|
286
|
-
"uuid": "261f75c1-df67-4c62-a2e9-ce13550f5de3",
|
287
|
-
"slug": "robot-simulator",
|
288
|
-
"core": false,
|
289
|
-
"unlocked_by": null,
|
290
|
-
"difficulty": 3,
|
291
|
-
"topics": [
|
292
|
-
"Enumerations",
|
293
|
-
"Tuples"
|
294
|
-
]
|
295
|
-
},
|
296
319
|
{
|
297
320
|
"uuid": "f6d61a0e-068b-4519-8d4d-563713be6168",
|
298
321
|
"slug": "isogram",
|
299
322
|
"core": false,
|
300
|
-
"unlocked_by":
|
323
|
+
"unlocked_by": "sum-of-multiples",
|
301
324
|
"difficulty": 3,
|
302
325
|
"topics": [
|
303
326
|
"Strings",
|
@@ -308,7 +331,7 @@
|
|
308
331
|
"uuid": "a6a06d7f-af28-4c42-a870-0de2c9e896c2",
|
309
332
|
"slug": "clock",
|
310
333
|
"core": false,
|
311
|
-
"unlocked_by":
|
334
|
+
"unlocked_by": "space-age",
|
312
335
|
"difficulty": 3,
|
313
336
|
"topics": [
|
314
337
|
"Time",
|
@@ -319,7 +342,7 @@
|
|
319
342
|
"uuid": "e6a3354e-dd32-413f-856d-53c81bd0d728",
|
320
343
|
"slug": "protein-translation",
|
321
344
|
"core": false,
|
322
|
-
"unlocked_by":
|
345
|
+
"unlocked_by": "accumulate",
|
323
346
|
"difficulty": 3,
|
324
347
|
"topics": [
|
325
348
|
"Strings",
|
@@ -331,7 +354,7 @@
|
|
331
354
|
"uuid": "15047d95-671b-4163-96b2-834ec54ea3d5",
|
332
355
|
"slug": "beer-song",
|
333
356
|
"core": false,
|
334
|
-
"unlocked_by":
|
357
|
+
"unlocked_by": "hello-world",
|
335
358
|
"difficulty": 3,
|
336
359
|
"topics": [
|
337
360
|
"Text formatting",
|
@@ -340,24 +363,11 @@
|
|
340
363
|
"Strings"
|
341
364
|
]
|
342
365
|
},
|
343
|
-
{
|
344
|
-
"uuid": "c6c37479-a030-44ba-9da5-97eb77233ac6",
|
345
|
-
"slug": "matrix",
|
346
|
-
"core": false,
|
347
|
-
"unlocked_by": null,
|
348
|
-
"difficulty": 4,
|
349
|
-
"topics": [
|
350
|
-
"Strings",
|
351
|
-
"Matrices",
|
352
|
-
"Parsing",
|
353
|
-
"Vectors"
|
354
|
-
]
|
355
|
-
},
|
356
366
|
{
|
357
367
|
"uuid": "73770426-74a8-498f-a37c-1b12aaf71281",
|
358
368
|
"slug": "house",
|
359
369
|
"core": false,
|
360
|
-
"unlocked_by":
|
370
|
+
"unlocked_by": "hello-world",
|
361
371
|
"difficulty": 4,
|
362
372
|
"topics": [
|
363
373
|
"Strings",
|
@@ -369,7 +379,7 @@
|
|
369
379
|
"uuid": "35a0ff51-6c85-4a39-8017-62e8eabd1c21",
|
370
380
|
"slug": "series",
|
371
381
|
"core": false,
|
372
|
-
"unlocked_by":
|
382
|
+
"unlocked_by": "accumulate",
|
373
383
|
"difficulty": 4,
|
374
384
|
"topics": [
|
375
385
|
"Strings",
|
@@ -381,7 +391,7 @@
|
|
381
391
|
"uuid": "10c53e9d-8fa6-486c-b68a-be821dec5010",
|
382
392
|
"slug": "word-count",
|
383
393
|
"core": false,
|
384
|
-
"unlocked_by":
|
394
|
+
"unlocked_by": "grade-school",
|
385
395
|
"difficulty": 4,
|
386
396
|
"topics": [
|
387
397
|
"Maps",
|
@@ -393,7 +403,7 @@
|
|
393
403
|
"uuid": "54633841-b60f-49a0-9f95-aeda09de6232",
|
394
404
|
"slug": "anagram",
|
395
405
|
"core": false,
|
396
|
-
"unlocked_by":
|
406
|
+
"unlocked_by": "sum-of-multiples",
|
397
407
|
"difficulty": 4,
|
398
408
|
"topics": [
|
399
409
|
"Sequences",
|
@@ -405,7 +415,7 @@
|
|
405
415
|
"uuid": "c03319c6-1a2b-4f26-a943-242ccc6a295e",
|
406
416
|
"slug": "nucleotide-count",
|
407
417
|
"core": false,
|
408
|
-
"unlocked_by":
|
418
|
+
"unlocked_by": "grade-school",
|
409
419
|
"difficulty": 4,
|
410
420
|
"topics": [
|
411
421
|
"Maps",
|
@@ -416,7 +426,7 @@
|
|
416
426
|
"uuid": "50a7cf00-7f5e-4f38-9a13-c8ff5c895723",
|
417
427
|
"slug": "meetup",
|
418
428
|
"core": false,
|
419
|
-
"unlocked_by":
|
429
|
+
"unlocked_by": "space-age",
|
420
430
|
"difficulty": 4,
|
421
431
|
"topics": [
|
422
432
|
"Dates"
|
@@ -426,7 +436,7 @@
|
|
426
436
|
"uuid": "49d45a39-c8de-4b25-9ee2-5e08de8721c0",
|
427
437
|
"slug": "prime-factors",
|
428
438
|
"core": false,
|
429
|
-
"unlocked_by":
|
439
|
+
"unlocked_by": "leap",
|
430
440
|
"difficulty": 4,
|
431
441
|
"topics": [
|
432
442
|
"Lists",
|
@@ -439,7 +449,7 @@
|
|
439
449
|
"uuid": "8e311809-1de4-44c3-923a-ffd863843e6b",
|
440
450
|
"slug": "allergies",
|
441
451
|
"core": false,
|
442
|
-
"unlocked_by":
|
452
|
+
"unlocked_by": "perfect-numbers",
|
443
453
|
"difficulty": 4,
|
444
454
|
"topics": [
|
445
455
|
"Lists",
|
@@ -451,7 +461,7 @@
|
|
451
461
|
"uuid": "adcf2a9b-2f6c-490f-b441-ad413a03fee7",
|
452
462
|
"slug": "all-your-base",
|
453
463
|
"core": false,
|
454
|
-
"unlocked_by":
|
464
|
+
"unlocked_by": "accumulate",
|
455
465
|
"difficulty": 4,
|
456
466
|
"topics": [
|
457
467
|
"Integers",
|
@@ -465,7 +475,7 @@
|
|
465
475
|
"uuid": "1218f854-ebb9-40dd-9487-ccc4d09c9a43",
|
466
476
|
"slug": "kindergarten-garden",
|
467
477
|
"core": false,
|
468
|
-
"unlocked_by":
|
478
|
+
"unlocked_by": "accumulate",
|
469
479
|
"difficulty": 4,
|
470
480
|
"topics": [
|
471
481
|
"Enumerations",
|
@@ -477,7 +487,7 @@
|
|
477
487
|
"uuid": "7e81f24e-c892-4e45-b0bb-6c6420ba1f0e",
|
478
488
|
"slug": "largest-series-product",
|
479
489
|
"core": false,
|
480
|
-
"unlocked_by":
|
490
|
+
"unlocked_by": "accumulate",
|
481
491
|
"difficulty": 4,
|
482
492
|
"topics": [
|
483
493
|
"Strings",
|
@@ -491,7 +501,7 @@
|
|
491
501
|
"uuid": "34a134c4-f9f5-46c4-97db-2f6c8c1e97f5",
|
492
502
|
"slug": "pascals-triangle",
|
493
503
|
"core": false,
|
494
|
-
"unlocked_by":
|
504
|
+
"unlocked_by": "leap",
|
495
505
|
"difficulty": 4,
|
496
506
|
"topics": [
|
497
507
|
"Control-flow (loops)",
|
@@ -503,7 +513,7 @@
|
|
503
513
|
"uuid": "0e858f22-401b-44ad-b972-766e2f38e5d5",
|
504
514
|
"slug": "pythagorean-triplet",
|
505
515
|
"core": false,
|
506
|
-
"unlocked_by":
|
516
|
+
"unlocked_by": "robot-simulator",
|
507
517
|
"difficulty": 4,
|
508
518
|
"topics": [
|
509
519
|
"Integers",
|
@@ -516,7 +526,7 @@
|
|
516
526
|
"uuid": "aa135256-28c8-4e3e-a942-8ae5ae996ab5",
|
517
527
|
"slug": "saddle-points",
|
518
528
|
"core": false,
|
519
|
-
"unlocked_by":
|
529
|
+
"unlocked_by": "perfect-numbers",
|
520
530
|
"difficulty": 4,
|
521
531
|
"topics": [
|
522
532
|
"Matrices",
|
@@ -529,7 +539,7 @@
|
|
529
539
|
"uuid": "876a07ce-0ee4-4ded-bab3-c9b3f8746d57",
|
530
540
|
"slug": "acronym",
|
531
541
|
"core": false,
|
532
|
-
"unlocked_by":
|
542
|
+
"unlocked_by": "accumulate",
|
533
543
|
"difficulty": 4,
|
534
544
|
"topics": [
|
535
545
|
"Strings",
|
@@ -540,7 +550,7 @@
|
|
540
550
|
"uuid": "163d247a-1763-4876-870a-63deb3a3daa8",
|
541
551
|
"slug": "run-length-encoding",
|
542
552
|
"core": false,
|
543
|
-
"unlocked_by":
|
553
|
+
"unlocked_by": "accumulate",
|
544
554
|
"difficulty": 5,
|
545
555
|
"topics": [
|
546
556
|
"Algorithms",
|
@@ -552,7 +562,7 @@
|
|
552
562
|
"uuid": "4c08ec90-4c5a-4dae-812c-52899b1a29cf",
|
553
563
|
"slug": "roman-numerals",
|
554
564
|
"core": false,
|
555
|
-
"unlocked_by":
|
565
|
+
"unlocked_by": "accumulate",
|
556
566
|
"difficulty": 5,
|
557
567
|
"topics": [
|
558
568
|
"Sequences",
|
@@ -564,7 +574,7 @@
|
|
564
574
|
"uuid": "168823e4-de57-40c0-ac8d-bec6ccf9c96d",
|
565
575
|
"slug": "simple-linked-list",
|
566
576
|
"core": false,
|
567
|
-
"unlocked_by":
|
577
|
+
"unlocked_by": "hamming",
|
568
578
|
"difficulty": 5,
|
569
579
|
"topics": [
|
570
580
|
"Classes",
|
@@ -577,7 +587,7 @@
|
|
577
587
|
"uuid": "842f0674-fcf3-48c3-80ae-c6d43c65f270",
|
578
588
|
"slug": "atbash-cipher",
|
579
589
|
"core": false,
|
580
|
-
"unlocked_by":
|
590
|
+
"unlocked_by": "accumulate",
|
581
591
|
"difficulty": 5,
|
582
592
|
"topics": [
|
583
593
|
"Strings",
|
@@ -589,7 +599,7 @@
|
|
589
599
|
"uuid": "6e379741-8337-41f3-9790-dc93cacdc9b6",
|
590
600
|
"slug": "simple-cipher",
|
591
601
|
"core": false,
|
592
|
-
"unlocked_by":
|
602
|
+
"unlocked_by": "hamming",
|
593
603
|
"difficulty": 5,
|
594
604
|
"topics": [
|
595
605
|
"Optional values",
|
@@ -602,7 +612,7 @@
|
|
602
612
|
"uuid": "ec0334d9-df30-4e61-bea6-bd3f7c8d13e6",
|
603
613
|
"slug": "bank-account",
|
604
614
|
"core": false,
|
605
|
-
"unlocked_by":
|
615
|
+
"unlocked_by": "robot-simulator",
|
606
616
|
"difficulty": 5,
|
607
617
|
"topics": [
|
608
618
|
"Parallellism"
|
@@ -612,7 +622,7 @@
|
|
612
622
|
"uuid": "b047cdd2-5afa-47a0-b48d-5c235c1099dc",
|
613
623
|
"slug": "crypto-square",
|
614
624
|
"core": false,
|
615
|
-
"unlocked_by":
|
625
|
+
"unlocked_by": "etl",
|
616
626
|
"difficulty": 5,
|
617
627
|
"topics": [
|
618
628
|
"Strings",
|
@@ -625,7 +635,7 @@
|
|
625
635
|
"uuid": "9d25bf46-52d6-435e-a384-38c25517f8ee",
|
626
636
|
"slug": "bracket-push",
|
627
637
|
"core": false,
|
628
|
-
"unlocked_by":
|
638
|
+
"unlocked_by": "hello-world",
|
629
639
|
"difficulty": 5,
|
630
640
|
"topics": [
|
631
641
|
"Strings",
|
@@ -636,7 +646,7 @@
|
|
636
646
|
"uuid": "1af833c7-2e0d-4c96-a3a9-d4812df5d1a1",
|
637
647
|
"slug": "queen-attack",
|
638
648
|
"core": false,
|
639
|
-
"unlocked_by":
|
649
|
+
"unlocked_by": "hamming",
|
640
650
|
"difficulty": 5,
|
641
651
|
"topics": [
|
642
652
|
"Strings",
|
@@ -649,7 +659,7 @@
|
|
649
659
|
"uuid": "8956383c-bea2-4bcc-b7af-df19f94e15e6",
|
650
660
|
"slug": "luhn",
|
651
661
|
"core": false,
|
652
|
-
"unlocked_by":
|
662
|
+
"unlocked_by": "accumulate",
|
653
663
|
"difficulty": 5,
|
654
664
|
"topics": [
|
655
665
|
"Strings",
|
@@ -661,7 +671,7 @@
|
|
661
671
|
"uuid": "60deb77c-45f2-48a1-bff8-b0cef3b07500",
|
662
672
|
"slug": "food-chain",
|
663
673
|
"core": false,
|
664
|
-
"unlocked_by":
|
674
|
+
"unlocked_by": "hello-world",
|
665
675
|
"difficulty": 5,
|
666
676
|
"topics": [
|
667
677
|
"Text formatting",
|
@@ -672,7 +682,7 @@
|
|
672
682
|
"uuid": "bec1be3e-2d1c-4cb7-9398-dd0249e79d2e",
|
673
683
|
"slug": "linked-list",
|
674
684
|
"core": false,
|
675
|
-
"unlocked_by":
|
685
|
+
"unlocked_by": "hamming",
|
676
686
|
"difficulty": 5,
|
677
687
|
"topics": [
|
678
688
|
"Lists",
|
@@ -684,7 +694,7 @@
|
|
684
694
|
"uuid": "e0810022-d3ea-463a-97da-dfdac08e3c63",
|
685
695
|
"slug": "spiral-matrix",
|
686
696
|
"core": false,
|
687
|
-
"unlocked_by":
|
697
|
+
"unlocked_by": "leap",
|
688
698
|
"difficulty": 5,
|
689
699
|
"topics": [
|
690
700
|
"Matrices"
|
@@ -694,7 +704,7 @@
|
|
694
704
|
"uuid": "0605da19-048e-4a1f-b508-5d77d1e384a5",
|
695
705
|
"slug": "custom-set",
|
696
706
|
"core": false,
|
697
|
-
"unlocked_by":
|
707
|
+
"unlocked_by": "accumulate",
|
698
708
|
"difficulty": 5,
|
699
709
|
"topics": [
|
700
710
|
"Sets",
|
@@ -706,7 +716,7 @@
|
|
706
716
|
"uuid": "a557f7e3-9fc0-4cd8-bab1-b4d8fc88402d",
|
707
717
|
"slug": "parallel-letter-frequency",
|
708
718
|
"core": false,
|
709
|
-
"unlocked_by":
|
719
|
+
"unlocked_by": "grade-school",
|
710
720
|
"difficulty": 5,
|
711
721
|
"topics": [
|
712
722
|
"Maps",
|
@@ -717,21 +727,11 @@
|
|
717
727
|
"Dictionaries"
|
718
728
|
]
|
719
729
|
},
|
720
|
-
{
|
721
|
-
"uuid": "5ce09233-9ec1-4422-aa97-2d90ea67146b",
|
722
|
-
"slug": "book-store",
|
723
|
-
"core": false,
|
724
|
-
"unlocked_by": null,
|
725
|
-
"difficulty": 5,
|
726
|
-
"topics": [
|
727
|
-
"Recursion"
|
728
|
-
]
|
729
|
-
},
|
730
730
|
{
|
731
731
|
"uuid": "c7838d98-35db-4a84-914e-c05cafda2bed",
|
732
732
|
"slug": "nth-prime",
|
733
733
|
"core": false,
|
734
|
-
"unlocked_by":
|
734
|
+
"unlocked_by": "leap",
|
735
735
|
"difficulty": 6,
|
736
736
|
"topics": [
|
737
737
|
"Optional values",
|
@@ -743,7 +743,7 @@
|
|
743
743
|
"uuid": "fc57c00f-ca56-499d-bb46-0ce006b60923",
|
744
744
|
"slug": "palindrome-products",
|
745
745
|
"core": false,
|
746
|
-
"unlocked_by":
|
746
|
+
"unlocked_by": "sum-of-multiples",
|
747
747
|
"difficulty": 6,
|
748
748
|
"topics": [
|
749
749
|
"Sets",
|
@@ -756,7 +756,7 @@
|
|
756
756
|
"uuid": "221be13e-da2a-4f0a-9702-84744cbcaca6",
|
757
757
|
"slug": "ocr-numbers",
|
758
758
|
"core": false,
|
759
|
-
"unlocked_by":
|
759
|
+
"unlocked_by": "accumulate",
|
760
760
|
"difficulty": 6,
|
761
761
|
"topics": [
|
762
762
|
"Lists",
|
@@ -770,7 +770,7 @@
|
|
770
770
|
"uuid": "088e1441-a648-4dc4-ad13-c5fdd8e8a104",
|
771
771
|
"slug": "pig-latin",
|
772
772
|
"core": false,
|
773
|
-
"unlocked_by":
|
773
|
+
"unlocked_by": "accumulate",
|
774
774
|
"difficulty": 6,
|
775
775
|
"topics": [
|
776
776
|
"Strings",
|
@@ -781,7 +781,7 @@
|
|
781
781
|
"uuid": "f70d2b0c-9660-4538-9897-2f233b93d0c3",
|
782
782
|
"slug": "binary-search-tree",
|
783
783
|
"core": false,
|
784
|
-
"unlocked_by":
|
784
|
+
"unlocked_by": "hamming",
|
785
785
|
"difficulty": 6,
|
786
786
|
"topics": [
|
787
787
|
"Searching",
|
@@ -794,7 +794,7 @@
|
|
794
794
|
"uuid": "755b5cf5-97f2-41c1-9b0b-24e6db68b7eb",
|
795
795
|
"slug": "rail-fence-cipher",
|
796
796
|
"core": false,
|
797
|
-
"unlocked_by":
|
797
|
+
"unlocked_by": "accumulate",
|
798
798
|
"difficulty": 6,
|
799
799
|
"topics": [
|
800
800
|
"Strings",
|
@@ -806,7 +806,7 @@
|
|
806
806
|
"uuid": "9ea2b27f-4c3a-463d-8869-4e930808ce93",
|
807
807
|
"slug": "bowling",
|
808
808
|
"core": false,
|
809
|
-
"unlocked_by":
|
809
|
+
"unlocked_by": "etl",
|
810
810
|
"difficulty": 6,
|
811
811
|
"topics": [
|
812
812
|
"Algorithms",
|
@@ -818,7 +818,7 @@
|
|
818
818
|
"uuid": "d619cdc2-b8b7-442d-a2b2-41383c33d219",
|
819
819
|
"slug": "dominoes",
|
820
820
|
"core": false,
|
821
|
-
"unlocked_by":
|
821
|
+
"unlocked_by": "hamming",
|
822
822
|
"difficulty": 7,
|
823
823
|
"topics": [
|
824
824
|
"Lists",
|
@@ -831,7 +831,7 @@
|
|
831
831
|
"uuid": "00a09826-f63b-4558-8ad0-6cdb7836dfea",
|
832
832
|
"slug": "sublist",
|
833
833
|
"core": false,
|
834
|
-
"unlocked_by":
|
834
|
+
"unlocked_by": "hamming",
|
835
835
|
"difficulty": 7,
|
836
836
|
"topics": [
|
837
837
|
"Generics",
|
@@ -843,7 +843,7 @@
|
|
843
843
|
"uuid": "04c3197c-cd3d-4853-af3f-50c189af80c7",
|
844
844
|
"slug": "minesweeper",
|
845
845
|
"core": false,
|
846
|
-
"unlocked_by":
|
846
|
+
"unlocked_by": "accumulate",
|
847
847
|
"difficulty": 7,
|
848
848
|
"topics": [
|
849
849
|
"Lists",
|
@@ -856,7 +856,7 @@
|
|
856
856
|
"uuid": "ded3ae4c-43a7-46df-b43b-42aab419c2d8",
|
857
857
|
"slug": "wordy",
|
858
858
|
"core": false,
|
859
|
-
"unlocked_by":
|
859
|
+
"unlocked_by": "perfect-numbers",
|
860
860
|
"difficulty": 7,
|
861
861
|
"topics": [
|
862
862
|
"Mathematics",
|
@@ -870,7 +870,7 @@
|
|
870
870
|
"uuid": "62dd342a-591c-497f-8f3a-64748952b1af",
|
871
871
|
"slug": "change",
|
872
872
|
"core": false,
|
873
|
-
"unlocked_by":
|
873
|
+
"unlocked_by": "perfect-numbers",
|
874
874
|
"difficulty": 7,
|
875
875
|
"topics": [
|
876
876
|
"Integers",
|
@@ -883,7 +883,7 @@
|
|
883
883
|
"uuid": "5ea6b0e1-513e-462f-9741-46f060638a92",
|
884
884
|
"slug": "connect",
|
885
885
|
"core": false,
|
886
|
-
"unlocked_by":
|
886
|
+
"unlocked_by": "book-store",
|
887
887
|
"difficulty": 8,
|
888
888
|
"topics": [
|
889
889
|
"Recursion",
|
@@ -898,7 +898,7 @@
|
|
898
898
|
"uuid": "eb9387d6-3fac-460b-ad14-657c0f4d2d88",
|
899
899
|
"slug": "zebra-puzzle",
|
900
900
|
"core": false,
|
901
|
-
"unlocked_by":
|
901
|
+
"unlocked_by": "book-store",
|
902
902
|
"difficulty": 8,
|
903
903
|
"topics": [
|
904
904
|
"Logic"
|
@@ -908,7 +908,7 @@
|
|
908
908
|
"uuid": "e0e0ef68-6759-42e3-8542-3d165f8900d7",
|
909
909
|
"slug": "say",
|
910
910
|
"core": false,
|
911
|
-
"unlocked_by":
|
911
|
+
"unlocked_by": "hamming",
|
912
912
|
"difficulty": 8,
|
913
913
|
"topics": [
|
914
914
|
"Strings",
|
@@ -921,7 +921,7 @@
|
|
921
921
|
"uuid": "64002f5b-e373-4850-92bf-88461d49376e",
|
922
922
|
"slug": "alphametics",
|
923
923
|
"core": false,
|
924
|
-
"unlocked_by":
|
924
|
+
"unlocked_by": "grade-school",
|
925
925
|
"difficulty": 9,
|
926
926
|
"topics": [
|
927
927
|
"Maps",
|
@@ -934,7 +934,7 @@
|
|
934
934
|
"uuid": "8b4c7142-6790-4d89-a5cb-fa094e2c969a",
|
935
935
|
"slug": "sgf-parsing",
|
936
936
|
"core": false,
|
937
|
-
"unlocked_by":
|
937
|
+
"unlocked_by": "accumulate",
|
938
938
|
"difficulty": 9,
|
939
939
|
"topics": [
|
940
940
|
"Parsing",
|
@@ -945,7 +945,7 @@
|
|
945
945
|
"uuid": "e6e88c52-b984-479d-8b9c-047d25f2aa47",
|
946
946
|
"slug": "lens-person",
|
947
947
|
"core": false,
|
948
|
-
"unlocked_by":
|
948
|
+
"unlocked_by": "grade-school",
|
949
949
|
"difficulty": 9,
|
950
950
|
"topics": [
|
951
951
|
|
@@ -955,7 +955,7 @@
|
|
955
955
|
"uuid": "12dbe514-848b-4fd2-868d-7f6195092e23",
|
956
956
|
"slug": "variable-length-quantity",
|
957
957
|
"core": false,
|
958
|
-
"unlocked_by":
|
958
|
+
"unlocked_by": "accumulate",
|
959
959
|
"difficulty": 9,
|
960
960
|
"topics": [
|
961
961
|
"Discriminated unions",
|
@@ -968,7 +968,7 @@
|
|
968
968
|
"uuid": "bc5b07e2-f641-4fda-818d-12502cdbb066",
|
969
969
|
"slug": "zipper",
|
970
970
|
"core": false,
|
971
|
-
"unlocked_by":
|
971
|
+
"unlocked_by": "accumulate",
|
972
972
|
"difficulty": 10,
|
973
973
|
"topics": [
|
974
974
|
"Generics",
|
@@ -980,7 +980,7 @@
|
|
980
980
|
"uuid": "2c85199f-4d09-485b-9925-3b21f81ee054",
|
981
981
|
"slug": "forth",
|
982
982
|
"core": false,
|
983
|
-
"unlocked_by":
|
983
|
+
"unlocked_by": "leap",
|
984
984
|
"difficulty": 10,
|
985
985
|
"topics": [
|
986
986
|
"Strings",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trackler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.1.
|
4
|
+
version: 2.2.1.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -7254,6 +7254,7 @@ files:
|
|
7254
7254
|
- tracks/lisp/docs/INSTALLATION.md
|
7255
7255
|
- tracks/lisp/docs/LEARNING.md
|
7256
7256
|
- tracks/lisp/docs/RESOURCES.md
|
7257
|
+
- tracks/lisp/docs/SNIPPET.txt
|
7257
7258
|
- tracks/lisp/docs/TESTS.md
|
7258
7259
|
- tracks/lisp/exercises/allergies/README.md
|
7259
7260
|
- tracks/lisp/exercises/allergies/allergies-test.lisp
|
@@ -9541,6 +9542,10 @@ files:
|
|
9541
9542
|
- tracks/r/docs/RESOURCES.md
|
9542
9543
|
- tracks/r/docs/SNIPPET.txt
|
9543
9544
|
- tracks/r/docs/TESTS.md
|
9545
|
+
- tracks/r/exercises/allergies/README.md
|
9546
|
+
- tracks/r/exercises/allergies/allergies.R
|
9547
|
+
- tracks/r/exercises/allergies/example.R
|
9548
|
+
- tracks/r/exercises/allergies/test_allergies.R
|
9544
9549
|
- tracks/r/exercises/anagram/README.md
|
9545
9550
|
- tracks/r/exercises/anagram/anagram.R
|
9546
9551
|
- tracks/r/exercises/anagram/example.R
|