From 9061410bad144f8547bb98be136b81188570878a Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 08:32:04 +0100 Subject: [PATCH 001/127] rna-transcription --- config.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index 8a604d4ad9..1718eb5050 100644 --- a/config.json +++ b/config.json @@ -489,7 +489,7 @@ "slug": "hello-world", "name": "Hello World", "uuid": "cc96d65d-1c79-40d0-8fd2-9a6665a43b01", - "prerequisites": [], + "prerequisites": ["basics"], "difficulty": 1, "topics": [ "strings" @@ -499,7 +499,13 @@ "slug": "rna-transcription", "name": "RNA Transcription", "uuid": "a4629a60-752f-4234-99f1-6b3ac0b4ba18", - "prerequisites": [], + "prerequisites": [ + "charlists", + "pattern-matching", + "multiple-clause-functions", + "case", + "enum" + ], "difficulty": 2, "topics": [ "strings" From 706095b039b64b86c7f3c1177a6807b9061668dc Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:08:28 +0100 Subject: [PATCH 002/127] Word count --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 1718eb5050..ebe7db0b8d 100644 --- a/config.json +++ b/config.json @@ -515,7 +515,12 @@ "slug": "word-count", "name": "Word Count", "uuid": "4a24ba2f-ae92-4095-be53-64bc881422ea", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "enum", + "maps" + ], "difficulty": 2, "topics": [ "lists", From b34a3d3c2eeff50a8b7a02f8d3d63ea55ad3bb9a Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:15:08 +0100 Subject: [PATCH 003/127] Roman numerals --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index ebe7db0b8d..42b8a6e7ae 100644 --- a/config.json +++ b/config.json @@ -532,7 +532,17 @@ "slug": "roman-numerals", "name": "Roman Numerals", "uuid": "4c0ece49-5710-43a1-88b3-2fb149de8552", - "prerequisites": [], + "prerequisites": [ + "strings", + "recursion", + "guards", + "default-arguments", + "multiple-clause-functions", + "enum", + "maps", + "cond", + "case" + ], "difficulty": 2, "topics": [ "algorithms", From a13f68ff601cf1a0a081728e52f15fd757bab36b Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:17:30 +0100 Subject: [PATCH 004/127] Bob --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 42b8a6e7ae..a4478cffd4 100644 --- a/config.json +++ b/config.json @@ -553,7 +553,11 @@ "slug": "bob", "name": "Bob", "uuid": "d20b49dc-cb6d-45fc-a168-78d002072c75", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "cond" + ], "difficulty": 2, "topics": [ "control_flow", From 400e2e9a6bd39da1c80c7983f76e9f82ff309899 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:21:01 +0100 Subject: [PATCH 005/127] Beer song --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index a4478cffd4..06bf30416a 100644 --- a/config.json +++ b/config.json @@ -568,7 +568,13 @@ "slug": "beer-song", "name": "Beer Song", "uuid": "24db624b-7c80-409d-97d5-e1177f025c67", - "prerequisites": [], + "prerequisites": [ + "strings", + "multiple-clause-functions", + "ranges", + "enum", + "recursion" + ], "difficulty": 3, "topics": [ "pattern_matching", From ebff913987b986cd1935990f092fc5bce0be4252 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:40:16 +0100 Subject: [PATCH 006/127] Robot simulator --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 06bf30416a..5a646e8531 100644 --- a/config.json +++ b/config.json @@ -585,7 +585,16 @@ "slug": "robot-simulator", "name": "Robot Simulator", "uuid": "e5e55560-852f-4551-b4da-c9f4a3141470", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "guards", + "pattern-matching", + "case", + "strings", + "enum", + "structs", + "errors" + ], "difficulty": 6, "topics": [ "pattern_matching", From 406c7bee027601eafbfec26f4217c1df53285682 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:47:04 +0100 Subject: [PATCH 007/127] List ops --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 5a646e8531..d4ad643418 100644 --- a/config.json +++ b/config.json @@ -605,7 +605,13 @@ "slug": "list-ops", "name": "List Ops", "uuid": "86658a31-d401-401b-80df-2c4df35f9b15", - "prerequisites": [], + "prerequisites": [ + "lists", + "recursion", + "tail-call-recursion", + "multiple-clause-functions", + "pattern-matching" + ], "difficulty": 4, "topics": [ "enumeration", From 5fbe0c5f5b588a48c4612c573d566e1d68487b39 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 10:54:39 +0100 Subject: [PATCH 008/127] Markdown --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index d4ad643418..2486c74457 100644 --- a/config.json +++ b/config.json @@ -623,7 +623,16 @@ "slug": "markdown", "name": "Markdown", "uuid": "5dfa24bf-e77c-47c6-88e1-e50cbeecd159", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum", + "recursion", + "regular-expressions", + "multiple-clause-functions", + "pattern-matching", + "cond", + "if" + ], "difficulty": 5, "topics": [ "refactoring" From e150a6b3323217cd2b4fb1b1d7cadd1c78c06a1b Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:05:10 +0100 Subject: [PATCH 009/127] Bank account --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 2486c74457..43e0b7628a 100644 --- a/config.json +++ b/config.json @@ -642,7 +642,11 @@ "slug": "bank-account", "name": "Bank Account", "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", - "prerequisites": [], + "prerequisites": [ + "processes", + "agent", + "genserver" + ], "difficulty": 7, "topics": [ "otp" From 13078bc7a76f9784a9353701d2265bde8e59b150 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:13:15 +0100 Subject: [PATCH 010/127] Zipper --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 43e0b7628a..ebc3efc32e 100644 --- a/config.json +++ b/config.json @@ -656,7 +656,16 @@ "slug": "zipper", "name": "Zipper", "uuid": "bc315734-051c-4735-9a8a-3aacb094d2ca", - "prerequisites": [], + "prerequisites": [ + "recursion", + "structs", + "protocols", + "if", + "nil", + "case", + "pattern-matching", + "multiple-clause-functions" + ], "difficulty": 8, "topics": [ "algorithms", From c3d40c366af47f19646a1775d2c84fe475f2e8e4 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:19:43 +0100 Subject: [PATCH 011/127] Bowling --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index ebc3efc32e..13d93e2fab 100644 --- a/config.json +++ b/config.json @@ -678,7 +678,19 @@ "slug": "bowling", "name": "Bowling", "uuid": "3b252cc6-cc55-4187-891e-c10aaabac81f", - "prerequisites": [], + "prerequisites": [ + "pattern-matching", + "multiple-clause-functions", + "guards", + "lists", + "enum", + "recursion", + "cond", + "if", + "case", + "structs", + "errors" + ], "difficulty": 8, "topics": [ "algorithms", From 9321427f8658b6377fcdb8ab69bab8bb670655ad Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:28:17 +0100 Subject: [PATCH 012/127] Forth --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 13d93e2fab..28c3c77baa 100644 --- a/config.json +++ b/config.json @@ -702,7 +702,23 @@ "slug": "forth", "name": "Forth", "uuid": "2abfa3e5-d358-4a07-91f9-d4ad04eb719d", - "prerequisites": [], + "prerequisites": [ + "pattern-matching", + "multiple-clause-functions", + "guards", + "strings", + "regular-expressions", + "maps", + "lists", + "enum", + "recursion", + "cond", + "if", + "case", + "structs", + "errors", + "exceptions" + ], "difficulty": 10, "topics": [ "parsers" From bde18bf963d91cd09a2d5819a5f9eeaa61c167e3 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:29:42 +0100 Subject: [PATCH 013/127] Resistor color --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 28c3c77baa..79c07c0402 100644 --- a/config.json +++ b/config.json @@ -728,7 +728,11 @@ "slug": "resistor-color", "name": "Resistor Color", "uuid": "12efd520-e3e5-437f-b93e-38af14aa605d", - "prerequisites": [], + "prerequisites": [ + "lists", + "enum", + "recursion" + ], "difficulty": 1, "topics": [ "enumerables" From ce15309f3b59de75b2b89c35f4ee5154d895db63 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:31:25 +0100 Subject: [PATCH 014/127] Two fer --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 79c07c0402..1d3d5a3a29 100644 --- a/config.json +++ b/config.json @@ -742,7 +742,11 @@ "slug": "two-fer", "name": "Two Fer", "uuid": "e7f3280e-0bef-4fac-8a69-cbfa2e5f818a", - "prerequisites": [], + "prerequisites": [ + "strings", + "guards", + "default-arguments" + ], "difficulty": 1, "topics": [ "strings" From 99171f29cd5af6036041f8bacb75a98cce7c02ec Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:34:51 +0100 Subject: [PATCH 015/127] Nucleotide count --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 1d3d5a3a29..48bc9486a5 100644 --- a/config.json +++ b/config.json @@ -756,7 +756,12 @@ "slug": "nucleotide-count", "name": "Nucleotide Count", "uuid": "7404e885-747a-46fc-be0c-c53f4b0e162f", - "prerequisites": [], + "prerequisites": [ + "charlists", + "maps", + "enum", + "recursion" + ], "difficulty": 2, "topics": [ "enumerables", From 20457d6e2ae75759b47272d07291dd385e59a770 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:39:24 +0100 Subject: [PATCH 016/127] Pig latin --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 48bc9486a5..751791bf2a 100644 --- a/config.json +++ b/config.json @@ -773,7 +773,15 @@ "slug": "pig-latin", "name": "Pig Latin", "uuid": "3aa45a2b-d3bc-4763-b11d-5d41a1cf505c", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "enum", + "recursion", + "cond", + "if", + "case" + ], "difficulty": 2, "topics": [ "pattern_matching", From f94c12d7bc0faa49e1374c088b7dc61613cd12dd Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 11:45:12 +0100 Subject: [PATCH 017/127] Protein translation --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 751791bf2a..9ee805d915 100644 --- a/config.json +++ b/config.json @@ -792,7 +792,17 @@ "slug": "protein-translation", "name": "Protein Translation", "uuid": "84af7be8-8f90-4990-9d48-b5324a0d4354", - "prerequisites": [], + "prerequisites": [ + "maps", + "enum", + "recursion", + "case", + "pattern-matching", + "strings", + "binaries", + "regular-expressions", + "errors" + ], "difficulty": 2, "topics": [ "pattern_matching", From 280531a0dbddde44271941232e0e770a060b6a0e Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:28:42 +0100 Subject: [PATCH 018/127] Rotational cipher --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9ee805d915..723f5f7060 100644 --- a/config.json +++ b/config.json @@ -813,7 +813,17 @@ "slug": "rotational-cipher", "name": "Rotational Cipher", "uuid": "99b344ff-b74c-4af5-9952-7738b493ee7b", - "prerequisites": [], + "prerequisites": [ + "strings", + "charlists", + "ranges", + "enum", + "recursion", + "cond", + "case", + "multiple-clause-functions", + "guards" + ], "difficulty": 2, "topics": [ "string_processing" From d656b65b82f8e0413143993006d93859ad583dcb Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:32:29 +0100 Subject: [PATCH 019/127] Secret handshake --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 723f5f7060..22f8809283 100644 --- a/config.json +++ b/config.json @@ -833,7 +833,16 @@ "slug": "secret-handshake", "name": "Secret Handshake", "uuid": "ea7da409-6bda-4cff-b26e-0909ba36f4f5", - "prerequisites": [], + "prerequisites": [ + "lists", + "cond", + "if", + "case", + "multiple-clause-functions", + "enum", + "recursion", + "bit-manipulation" + ], "difficulty": 2, "topics": [ "binary_representation" From 081fa9e17f1516ed0dd726ec3697d11d46419a39 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:35:36 +0100 Subject: [PATCH 020/127] Space age --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 22f8809283..147942d625 100644 --- a/config.json +++ b/config.json @@ -852,7 +852,13 @@ "slug": "space-age", "name": "Space Age", "uuid": "1d02554e-15f3-46aa-9f14-60b4049f3100", - "prerequisites": [], + "prerequisites": [ + "floating-point-numbers", + "atoms", + "multiple-clause-functions", + "pattern-matching", + "maps" + ], "difficulty": 2, "topics": [ "pattern_matching" From a83f3fb1725b39e40cb92e3712ffdbd2709b82fe Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:48:19 +0100 Subject: [PATCH 021/127] Strain --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 147942d625..ab3c473d93 100644 --- a/config.json +++ b/config.json @@ -868,7 +868,15 @@ "slug": "strain", "name": "Strain", "uuid": "d51edc8a-893b-4b05-912f-759e0d85123b", - "prerequisites": [], + "prerequisites": [ + "anonymous-functions", + "lists", + "recursion", + "tail-call-recursion", + "cond", + "case", + "if" + ], "difficulty": 2, "topics": [ "collections" From 98129640a3d9c9f1abc0557b1d6d047b8b7dc511 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:52:02 +0100 Subject: [PATCH 022/127] Accumulate --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index ab3c473d93..323d71d246 100644 --- a/config.json +++ b/config.json @@ -886,7 +886,11 @@ "slug": "accumulate", "name": "Accumulate", "uuid": "e7c6a0d2-6aaf-4d55-99e2-8ffa65a5e8f0", - "prerequisites": [], + "prerequisites": [ + "anonymous-functions", + "lists", + "recursion" + ], "difficulty": 2, "topics": [ "recursion", From 2ea69b9fc98467092ff52f8a9ac2daa839e39729 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:53:16 +0100 Subject: [PATCH 023/127] Acronym --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 323d71d246..56e1176350 100644 --- a/config.json +++ b/config.json @@ -901,7 +901,11 @@ "slug": "acronym", "name": "Acronym", "uuid": "23989815-1b3f-4377-b6bf-ce9536432517", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum", + "regular-expressions" + ], "difficulty": 2, "topics": [ "string_processing" From 86ae353ea11813c295c2fc85517ec80595db340c Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:56:08 +0100 Subject: [PATCH 024/127] Raindrops --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 56e1176350..69070ba830 100644 --- a/config.json +++ b/config.json @@ -915,7 +915,15 @@ "slug": "raindrops", "name": "Raindrops", "uuid": "4522b139-6f0c-4172-a4fa-6a6adef33a9e", - "prerequisites": [], + "prerequisites": [ + "integers", + "multiple-clause-functions", + "guards", + "if", + "strings", + "maps", + "enum" + ], "difficulty": 2, "topics": [ "conditionals" From 578edb09d5741f36cb2802bbf6959d7a6ab61cf5 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 12:59:51 +0100 Subject: [PATCH 025/127] Run length encoding --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 69070ba830..5e8f38a9a8 100644 --- a/config.json +++ b/config.json @@ -933,7 +933,12 @@ "slug": "run-length-encoding", "name": "Run Length Encoding", "uuid": "f4f759ea-53e1-42d6-a580-6e7b7d6a99a0", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "enum", + "if" + ], "difficulty": 2, "topics": [ "algorithms", From 4b0947f9cbb654b755cdcf05c28264b8ba4da14f Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:02:11 +0100 Subject: [PATCH 026/127] Series --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 5e8f38a9a8..9bcb95364d 100644 --- a/config.json +++ b/config.json @@ -949,7 +949,12 @@ "slug": "series", "name": "Series", "uuid": "4a084cb7-335d-41f1-8148-5d3abbce8ab0", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "guards", + "strings", + "enum" + ], "difficulty": 2, "topics": [ "string_processing" From 59b47ddd4d8f2a4cffc89dbf356fa1405fa666d5 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:04:33 +0100 Subject: [PATCH 027/127] Dnd character --- config.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9bcb95364d..014aabb637 100644 --- a/config.json +++ b/config.json @@ -964,7 +964,14 @@ "slug": "dnd-character", "name": "DnD Character", "uuid": "bd15a0e0-c19e-4a52-be6c-1a61d14c54cd", - "prerequisites": [], + "prerequisites": [ + "integers", + "enum", + "recursion", + "structs", + "ranges", + "randomness" + ], "difficulty": 3, "topics": [ "random", From 7e142ba4f113207aff12c92eb6459724ad1f7e91 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:06:13 +0100 Subject: [PATCH 028/127] Pangram --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 014aabb637..9d4e29b946 100644 --- a/config.json +++ b/config.json @@ -982,7 +982,13 @@ "slug": "pangram", "name": "Pangram", "uuid": "20a0bbf8-751c-477a-a2cb-dd7cf4e4896c", - "prerequisites": [], + "prerequisites": [ + "strings", + "charlists", + "enum", + "recursion", + "ranges" + ], "difficulty": 2, "topics": [ "enumerations", From beb4910a4c64bc4027f282432ede998673e9af4d Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:08:20 +0100 Subject: [PATCH 029/127] Scrabble score --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9d4e29b946..52b853e83a 100644 --- a/config.json +++ b/config.json @@ -999,7 +999,12 @@ "slug": "scrabble-score", "name": "Scrabble Score", "uuid": "cc198564-72e6-444b-93b6-6b7ecf4d1759", - "prerequisites": [], + "prerequisites": [ + "strings", + "maps", + "enum", + "recursion" + ], "difficulty": 2, "topics": [ "reduce" From fa937a8680702ade232375496efd5c491f1d4d55 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:10:27 +0100 Subject: [PATCH 030/127] Sum of multiples --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 52b853e83a..10c82b2f1f 100644 --- a/config.json +++ b/config.json @@ -1014,7 +1014,11 @@ "slug": "sum-of-multiples", "name": "Sum Of Multiples", "uuid": "5b8eece1-845f-4a5a-8a2f-fe2bf66f5e57", - "prerequisites": [], + "prerequisites": [ + "enum", + "recursion", + "ranges" + ], "difficulty": 2, "topics": [ "algorithms", From 2d4b9a62cfe753c57a9096055868241759d99eff Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:11:35 +0100 Subject: [PATCH 031/127] Grade school --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 10c82b2f1f..3254a0e1a3 100644 --- a/config.json +++ b/config.json @@ -1030,7 +1030,11 @@ "slug": "grade-school", "name": "Grade School", "uuid": "4e6d3ddf-b696-40dc-ba02-ed998e595be7", - "prerequisites": [], + "prerequisites": [ + "lists", + "maps", + "enum" + ], "difficulty": 3, "topics": [ "maps" From 1351191f94024cce875ea0acad2d5a68afbe3223 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:12:49 +0100 Subject: [PATCH 032/127] Isogram --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 3254a0e1a3..518cd1816c 100644 --- a/config.json +++ b/config.json @@ -1044,7 +1044,11 @@ "slug": "isogram", "name": "Isogram", "uuid": "55a20a0f-0131-4e4e-b14f-f3cb49e3cc04", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum", + "regular-expressions" + ], "difficulty": 3, "topics": [ "algorithms", From 0dc6ff9f7313f5dabaccfd19291b39755628e41e Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:16:22 +0100 Subject: [PATCH 033/127] Twelve days --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 518cd1816c..47b4cb7712 100644 --- a/config.json +++ b/config.json @@ -1059,7 +1059,16 @@ "slug": "twelve-days", "name": "Twelve Days", "uuid": "9dfb5dfc-1123-492b-9383-2a4312c219a4", - "prerequisites": [], + "prerequisites": [ + "lists", + "strings", + "multiple-clause-functions", + "case", + "enum", + "recursion", + "maps", + "ranges" + ], "difficulty": 3, "topics": [ "enumerations", From 1a65ea058d9505ecbe5aca422e3bd02e5495a135 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:18:17 +0100 Subject: [PATCH 034/127] Collatz conjecture --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 47b4cb7712..9c2e4adfbf 100644 --- a/config.json +++ b/config.json @@ -1080,7 +1080,12 @@ "slug": "collatz-conjecture", "name": "Collatz Conjecture", "uuid": "01f7ce73-ad6a-42bb-a401-cbd485c081d4", - "prerequisites": [], + "prerequisites": [ + "integers", + "recursion", + "multiple-clause-functions", + "guards" + ], "difficulty": 2, "topics": [ "math", From cc156517a4db305d08e5876a36b0e676828ccf8c Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:20:32 +0100 Subject: [PATCH 035/127] Sublist --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9c2e4adfbf..839893910b 100644 --- a/config.json +++ b/config.json @@ -1096,7 +1096,15 @@ "slug": "sublist", "name": "Sublist", "uuid": "146dd0ed-5210-4b3c-bb4b-8d0a8e832aab", - "prerequisites": [], + "prerequisites": [ + "lists", + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "recursion" + ], "difficulty": 2, "topics": [ "enumeration", From 8ff82e0b0b7f2b20722f0239cd4d0518f09e8601 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:22:13 +0100 Subject: [PATCH 036/127] Triangle --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 839893910b..7a75a0e935 100644 --- a/config.json +++ b/config.json @@ -1115,7 +1115,15 @@ "slug": "triangle", "name": "Triangle", "uuid": "546d92c7-c57b-4cbb-a721-9c393817a193", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "cond", + "case", + "if", + "errors" + ], "difficulty": 2, "topics": [ "algorithms" From 72705738e4afd853305144474646a454c57e7eec Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:23:58 +0100 Subject: [PATCH 037/127] Flatten array --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 7a75a0e935..07aa300350 100644 --- a/config.json +++ b/config.json @@ -1133,7 +1133,13 @@ "slug": "flatten-array", "name": "Flatten Array", "uuid": "0aae3af1-7c35-4d7c-aecf-8f89c7fbc300", - "prerequisites": [], + "prerequisites": [ + "lists", + "recursion", + "multiple-clause-functions", + "pattern-matching", + "guards" + ], "difficulty": 3, "topics": [ "lists", From adde21a52f7b0dd47e788e2e5c9d7667cff67c54 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:27:14 +0100 Subject: [PATCH 038/127] Matching brackets --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 07aa300350..9cee742b90 100644 --- a/config.json +++ b/config.json @@ -1150,7 +1150,19 @@ "slug": "matching-brackets", "name": "Matching Brackets", "uuid": "cf0084a0-7b1d-4714-b7b2-618e3ad6e147", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "cond", + "case", + "if", + "recursion", + "enum", + "maps", + "pattern-matching", + "multiple-clause-functions", + "binaries" + ], "difficulty": 3, "topics": [ "algorithms", From 793b51c60a644b6a6a703737a8d277adbc774285 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:29:54 +0100 Subject: [PATCH 039/127] Anagram --- config.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9cee742b90..c80015ed17 100644 --- a/config.json +++ b/config.json @@ -1174,7 +1174,10 @@ "slug": "anagram", "name": "Anagram", "uuid": "21e70267-097e-476f-aaff-233483514802", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum" + ], "difficulty": 2, "topics": [ "enumeration", From 9cc9e1b1702562d605a4a3cd58568d4a330db138 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:32:02 +0100 Subject: [PATCH 040/127] Hamming --- config.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index c80015ed17..42c11393e0 100644 --- a/config.json +++ b/config.json @@ -1188,7 +1188,14 @@ "slug": "hamming", "name": "Hamming", "uuid": "aca03bcb-eb70-4646-be34-8c1a44026e9b", - "prerequisites": [], + "prerequisites": [ + "charlists", + "multiple-clause-functions", + "guards", + "enum", + "recursion", + "errors" + ], "difficulty": 2, "topics": [ "string_processing" From 24f43863601d81a3fcf3f2d3c0dff6a982929fc1 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:33:31 +0100 Subject: [PATCH 041/127] Matrix --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 42c11393e0..df63517cd3 100644 --- a/config.json +++ b/config.json @@ -1205,7 +1205,11 @@ "slug": "matrix", "name": "Matrix", "uuid": "f0df392c-8ace-4639-b555-5e61e54a854e", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum", + "structs" + ], "difficulty": 3, "topics": [ "string_processing", From c27d129f2bd1d7457e358a0850436756149c1bbe Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:35:41 +0100 Subject: [PATCH 042/127] Phone number --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index df63517cd3..8f9ac3b9d2 100644 --- a/config.json +++ b/config.json @@ -1220,7 +1220,13 @@ "slug": "phone-number", "name": "Phone Number", "uuid": "e8b049b7-6648-412c-8a11-0c95a15e2641", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "multiple-clause-functions", + "pattern-matching", + "binaries" + ], "difficulty": 3, "topics": [ "pattern_matching", From b807e893a2b1bb0abba79b86699a64098600eabf Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:38:28 +0100 Subject: [PATCH 043/127] Say --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 8f9ac3b9d2..004beae1a2 100644 --- a/config.json +++ b/config.json @@ -1237,7 +1237,17 @@ "slug": "say", "name": "Say", "uuid": "5ecbe1c9-12e3-42b6-921a-bc2d32011930", - "prerequisites": [], + "prerequisites": [ + "strings", + "multiple-clause-functions", + "case", + "guards", + "enum", + "recursion", + "maps", + "ranges", + "errors" + ], "difficulty": 3, "topics": [ "pattern_matching" From 6f57711699407cbb85556c35fe8b89cb1d1810b7 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:43:10 +0100 Subject: [PATCH 044/127] Nth prime --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 004beae1a2..959303ae72 100644 --- a/config.json +++ b/config.json @@ -1257,7 +1257,19 @@ "slug": "nth-prime", "name": "Nth Prime", "uuid": "6d0c0785-3514-44fc-9b5a-0758989d1c6a", - "prerequisites": [], + "prerequisites": [ + "integers", + "cond", + "case", + "if", + "enum", + "recursion", + "multiple-clause-functions", + "guards", + "ranges", + "streams", + "exceptions" + ], "difficulty": 2, "topics": [ "algorithms", From 051e3a8ef70df0b9ed2c437187bafc5cd5651889 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:46:42 +0100 Subject: [PATCH 045/127] Binary search --- config.json | 9 ++++++++- exercises/practice/binary-search/.meta/example.ex | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/config.json b/config.json index 959303ae72..81827c419f 100644 --- a/config.json +++ b/config.json @@ -1281,7 +1281,14 @@ "slug": "binary-search", "name": "Binary Search", "uuid": "89204af8-3914-404b-8984-39a8d60362c4", - "prerequisites": [], + "prerequisites": [ + "tuples", + "integers", + "recursion", + "multiple-clause-functions", + "guards", + "cond" + ], "difficulty": 3, "topics": [ "algorithms", diff --git a/exercises/practice/binary-search/.meta/example.ex b/exercises/practice/binary-search/.meta/example.ex index a93467999b..53d6e03194 100644 --- a/exercises/practice/binary-search/.meta/example.ex +++ b/exercises/practice/binary-search/.meta/example.ex @@ -6,13 +6,13 @@ defmodule BinarySearch do ## Examples - iex> BinarySearch.search([], 2) + iex> BinarySearch.search({}, 2) :not_found - iex> BinarySearch.search([1, 3, 5], 2) + iex> BinarySearch.search({1, 3, 5}, 2) :not_found - iex> BinarySearch.search([1, 3, 5], 5) + iex> BinarySearch.search({1, 3, 5}, 5) {:ok, 2} """ From dd709b7baf7b6e30743cc7f01e8f200aef445815 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:49:13 +0100 Subject: [PATCH 046/127] ISBN verifier --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 81827c419f..3bc00cda57 100644 --- a/config.json +++ b/config.json @@ -1299,7 +1299,15 @@ "slug": "isbn-verifier", "name": "ISBN Verifier", "uuid": "0fb09d01-1f8b-4654-9004-52baa057412e", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "if", + "cond", + "case", + "ranges", + "enum" + ], "difficulty": 3, "topics": [ "string_processing" From 44a3b21d8a46cea1bbd81538f72d4f4041e2bf5a Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:53:02 +0100 Subject: [PATCH 047/127] Leap --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 3bc00cda57..04fdba2f6b 100644 --- a/config.json +++ b/config.json @@ -1317,7 +1317,12 @@ "slug": "leap", "name": "Leap", "uuid": "3d0d82d7-fdff-4dd5-b720-7246317bb023", - "prerequisites": [], + "prerequisites": [ + "integers", + "booleans", + "multiple-clause-functions", + "guards" + ], "difficulty": 3, "topics": [ "algorithms" From 9285aa113572091adcc4504a9bcf07b206feb4c2 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:56:02 +0100 Subject: [PATCH 048/127] Tournament --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 04fdba2f6b..8e6ead4a01 100644 --- a/config.json +++ b/config.json @@ -1332,7 +1332,18 @@ "slug": "tournament", "name": "Tournament", "uuid": "29a6f3f4-0d20-4447-8916-b98270780e0e", - "prerequisites": [], + "prerequisites": [ + "tuples", + "strings", + "maps", + "enum", + "multiple-clause-functions", + "pattern-matching", + "guards", + "cond", + "case", + "if" + ], "difficulty": 4, "topics": [ "formatting", From 5ab89d81ea965645b693c6c3be39ba362cacb693 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 13:58:14 +0100 Subject: [PATCH 049/127] All your base --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 8e6ead4a01..d03519971c 100644 --- a/config.json +++ b/config.json @@ -1355,7 +1355,18 @@ "slug": "all-your-base", "name": "All Your Base", "uuid": "f71d5f38-fcc9-4044-ade9-f779a8686c69", - "prerequisites": [], + "prerequisites": [ + "integers", + "multiple-clause-functions", + "pattern-matching", + "guards", + "cond", + "case", + "if", + "recursion", + "tail-call-recursion", + "enum" + ], "difficulty": 2, "topics": [ "math", From 2fd96b003609cbeb2e04e2982f9207050276a34f Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:01:35 +0100 Subject: [PATCH 050/127] Binary search tree --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index d03519971c..f23b57ba01 100644 --- a/config.json +++ b/config.json @@ -1378,7 +1378,16 @@ "slug": "binary-search-tree", "name": "Binary Search Tree", "uuid": "77fe5eb6-a35b-4af4-9512-275f140c25d6", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "cond", + "case", + "if", + "enum", + "maps" + ], "difficulty": 3, "topics": [ "algorithms", From 8e2deab70d79dc65cc5f2a6e7b33341bee442e25 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:04:48 +0100 Subject: [PATCH 051/127] Grains --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index f23b57ba01..9612b2fe5b 100644 --- a/config.json +++ b/config.json @@ -1398,7 +1398,16 @@ "slug": "grains", "name": "Grains", "uuid": "b030fa38-8935-4665-98c3-77f8434a6ea1", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "enum", + "ranges", + "errors", + "erlang-libraries", + "bit-manipulation" + ], "difficulty": 3, "topics": [ "recursion", From 8be12087bea7da6ee5e5c6c68eccbf38f5f3dfc5 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:08:18 +0100 Subject: [PATCH 052/127] Meetup --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 9612b2fe5b..7a3f5b4456 100644 --- a/config.json +++ b/config.json @@ -1418,7 +1418,17 @@ "slug": "meetup", "name": "Meetup", "uuid": "68fee2cd-a5bc-40f2-8936-a3bb10463498", - "prerequisites": [], + "prerequisites": [ + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "guards", + "enum", + "ranges", + "erlang-libraries" + ], "difficulty": 4, "topics": [ "calendar", From acf13cd0ce0f9146aff8b269bb736b0c0fde6019 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:12:13 +0100 Subject: [PATCH 053/127] Simple linked list --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 7a3f5b4456..f35f6963ea 100644 --- a/config.json +++ b/config.json @@ -1440,7 +1440,13 @@ "slug": "simple-linked-list", "name": "Simple Linked List", "uuid": "e5d2386a-3021-4329-a4b7-6164e49df776", - "prerequisites": [], + "prerequisites": [ + "tuples", + "pattern-matching", + "recursion", + "tail-call-recursion", + "errors" + ], "difficulty": 1, "topics": [ "recursion" From 449cfd45c51d203dfeb23a3cd06736589bc7d892 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:13:42 +0100 Subject: [PATCH 054/127] ETL --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index f35f6963ea..bfd43e6bbe 100644 --- a/config.json +++ b/config.json @@ -1456,7 +1456,11 @@ "slug": "etl", "name": "ETL", "uuid": "b3a4c561-344a-403e-b5b3-3533d51e65f4", - "prerequisites": [], + "prerequisites": [ + "strings", + "maps", + "enum" + ], "difficulty": 2, "topics": [ "enumeration", From 3bf51097962d7cc4636c62eda2ac5cc49a70efef Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:20:04 +0100 Subject: [PATCH 055/127] Binary --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index bfd43e6bbe..e582356c8a 100644 --- a/config.json +++ b/config.json @@ -1471,7 +1471,18 @@ "slug": "binary", "name": "Binary", "uuid": "29c3c9ff-c7f3-4646-9612-7cd768d237ab", - "prerequisites": [], + "prerequisites": [ + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "binaries", + "recursion", + "tail-call-recursion", + "enum", + "strings" + ], "difficulty": 3, "topics": [ "binary_operators", From 265e55d37cad19f0a21ab1de685180847660ef27 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:22:46 +0100 Subject: [PATCH 056/127] Change --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index e582356c8a..8a524208da 100644 --- a/config.json +++ b/config.json @@ -1493,7 +1493,15 @@ "slug": "change", "name": "Change", "uuid": "14bddd31-a68f-4a16-830f-6e8ecf8199f2", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "recursion", + "enum", + "maps", + "errors" + ], "difficulty": 3, "topics": [ "enumeration", From 7173260de1ac24950f31667c39de43dfd2eb0841 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:25:06 +0100 Subject: [PATCH 057/127] Transpose --- config.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 8a524208da..8556db238a 100644 --- a/config.json +++ b/config.json @@ -1512,7 +1512,10 @@ "slug": "transpose", "name": "Transpose", "uuid": "ce270a34-add1-422c-bb86-53b310f05e27", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum" + ], "difficulty": 5, "topics": [ "strings", From 2bd759266247252b4d7c24d6a84da13c8a5e0b3a Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:28:13 +0100 Subject: [PATCH 058/127] OCR numbers --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 8556db238a..75f05c6cba 100644 --- a/config.json +++ b/config.json @@ -1526,7 +1526,18 @@ "slug": "ocr-numbers", "name": "OCR Numbers", "uuid": "3f321191-afb1-4aa1-995b-204aa460269e", - "prerequisites": [], + "prerequisites": [ + "strings", + "charlists", + "multiple-clause-functions", + "pattern-matching", + "cond", + "case", + "if", + "enum", + "maps", + "binaries" + ], "difficulty": 6, "topics": [ "enumerations", From 531cd51dbb5c83d63b0c7b54f499d8368ef03688 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:42:45 +0100 Subject: [PATCH 059/127] Kindergarten garden --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 75f05c6cba..3098d6e698 100644 --- a/config.json +++ b/config.json @@ -1548,7 +1548,18 @@ "slug": "kindergarten-garden", "name": "Kindergarten Garden", "uuid": "ae72ff68-e4c9-472c-8a86-7adaaa9086ee", - "prerequisites": [], + "prerequisites": [ + "tuples", + "lists", + "string", + "multiple-clause-functions", + "pattern-matching", + "recursion", + "enum", + "maps", + "ranges", + "regular-expressions" + ], "difficulty": 3, "topics": [ "string_processing" From d3154c96a4158bf7885305abb2cbc56c6c99b83b Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:48:13 +0100 Subject: [PATCH 060/127] Diamond --- config.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 3098d6e698..85077638a1 100644 --- a/config.json +++ b/config.json @@ -1569,7 +1569,13 @@ "slug": "diamond", "name": "Diamond", "uuid": "89633764-ace4-4ad5-a1aa-22cae7be7d18", - "prerequisites": [], + "prerequisites": [ + "charlists", + "strings", + "enum", + "recursion", + "ranges" + ], "difficulty": 5, "topics": [ "algorithms", From 45fb4fa2541a6a1ecdc7d6392e25cf4eb3a38476 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:55:03 +0100 Subject: [PATCH 061/127] Luhn --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 85077638a1..b081b3c359 100644 --- a/config.json +++ b/config.json @@ -1586,7 +1586,19 @@ "slug": "luhn", "name": "Luhn", "uuid": "c38ca1a8-9f0e-49de-81f9-5712ce459839", - "prerequisites": [], + "prerequisites": [ + "integers", + "strings", + "regular-expressions", + "cond", + "case", + "if", + "multiple-clause-functions", + "guards", + "pattern-matching", + "recursion", + "enum" + ], "difficulty": 5, "topics": [ "enumeration", From af2555a7094962ab5b7e129b8c50bc3e4663c9d8 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 14:58:25 +0100 Subject: [PATCH 062/127] Scale generator --- config.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index b081b3c359..b361c971b6 100644 --- a/config.json +++ b/config.json @@ -1609,7 +1609,18 @@ "slug": "scale-generator", "name": "Scale Generator", "uuid": "94de8b3f-79d7-4367-821c-e239c95e32ca", - "prerequisites": [], + "prerequisites": [ + "lists", + "strings", + "binaries", + "cond", + "case", + "if", + "multiple-clause-functions", + "guards", + "pattern-matching", + "recursion" + ], "difficulty": 5, "topics": [ "enumerations", From a6f67fee7fc6fc13cd0a36f820c86ad815b204be Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:02:35 +0100 Subject: [PATCH 063/127] Rail fence cipher --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index b361c971b6..8c796634da 100644 --- a/config.json +++ b/config.json @@ -1631,7 +1631,19 @@ "slug": "rail-fence-cipher", "name": "Rail Fence Cipher", "uuid": "3daeb229-0638-443f-9ae2-222ebb88c11a", - "prerequisites": [], + "prerequisites": [ + "strings", + "cond", + "case", + "if", + "multiple-clause-functions", + "guards", + "pattern-matching", + "recursion", + "enum", + "ranges", + "streams" + ], "difficulty": 6, "topics": [ "encryption", From f634f3f20d8bb51328e7deede78db8d7484fc783 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:03:49 +0100 Subject: [PATCH 064/127] Hello world should have no prerequisites --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index 8c796634da..3bfc822382 100644 --- a/config.json +++ b/config.json @@ -489,7 +489,7 @@ "slug": "hello-world", "name": "Hello World", "uuid": "cc96d65d-1c79-40d0-8fd2-9a6665a43b01", - "prerequisites": ["basics"], + "prerequisites": [], "difficulty": 1, "topics": [ "strings" From 1c4926b345890d47076b7e55e641e08806a2c7fd Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:09:36 +0100 Subject: [PATCH 065/127] Gigasecond --- config.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 3bfc822382..97879a1d09 100644 --- a/config.json +++ b/config.json @@ -1654,7 +1654,10 @@ "slug": "gigasecond", "name": "Gigasecond", "uuid": "287331a4-64d5-4b35-b4c1-a1171dc338e1", - "prerequisites": [], + "prerequisites": [ + "integers", + "erlang-libraries" + ], "difficulty": 3, "topics": [ "calendar", From e5fadf268626d7cfb44e86fb72f6591ef598c306 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:25:57 +0100 Subject: [PATCH 066/127] Hexadecimal --- config.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 97879a1d09..a493b31faf 100644 --- a/config.json +++ b/config.json @@ -1668,7 +1668,17 @@ "slug": "hexadecimal", "name": "Hexadecimal", "uuid": "8154a099-5d6f-4e71-83fe-45ab23475778", - "prerequisites": [], + "prerequisites": [ + "strings", + "charlists", + "ranges", + "multiple-clause-functions", + "guards", + "pattern-matching", + "case", + "recursion", + "enum" + ], "difficulty": 3, "topics": [ "math", From 2a6c5f5d45802d07431192c38ff6c439fce532cb Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:30:12 +0100 Subject: [PATCH 067/127] Perfect numbers --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index a493b31faf..458a834999 100644 --- a/config.json +++ b/config.json @@ -1690,7 +1690,16 @@ "slug": "perfect-numbers", "name": "Perfect Numbers", "uuid": "cf4816a5-8cee-4a85-8bbb-236c0676123c", - "prerequisites": [], + "prerequisites": [ + "cond", + "case", + "multiple-clause-functions", + "pattern-matching", + "guards", + "enum", + "recursion", + "errors" + ], "difficulty": 3, "topics": [ "enumeration", From 7432e8252262b666d0ed537542aaa7aa9be94058 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:33:43 +0100 Subject: [PATCH 068/127] Prime factors --- config.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 458a834999..f2f1bcbada 100644 --- a/config.json +++ b/config.json @@ -1711,7 +1711,14 @@ "slug": "prime-factors", "name": "Prime Factors", "uuid": "47328272-b2f6-42e4-a5a3-a5d276bfbdee", - "prerequisites": [], + "prerequisites": [ + "integers", + "case", + "multiple-clause-functions", + "pattern-matching", + "guards", + "recursion" + ], "difficulty": 3, "topics": [ "math", From c78f6a985b74fe71b4796b38b435f25e7350aafe Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:35:30 +0100 Subject: [PATCH 069/127] Diffie hellman --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index f2f1bcbada..5bfd330804 100644 --- a/config.json +++ b/config.json @@ -1730,7 +1730,11 @@ "slug": "diffie-hellman", "name": "Diffie Hellman", "uuid": "92caf2b9-3fca-401c-8daa-aaa0193e704f", - "prerequisites": [], + "prerequisites": [ + "range", + "randomness", + "erlang-libraries" + ], "difficulty": 4, "topics": [ "math" From d050b6f563984be23bdc2a0f7435664e949ac1ad Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:40:10 +0100 Subject: [PATCH 070/127] Parallel letter frequency --- config.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 5bfd330804..6044dc5931 100644 --- a/config.json +++ b/config.json @@ -1744,7 +1744,12 @@ "slug": "parallel-letter-frequency", "name": "Parallel Letter Frequency", "uuid": "1992eaf7-7fbe-4176-ad46-01e325c27bcb", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "enum", + "task" + ], "difficulty": 4, "topics": [ "concurrency", From efdf8a5d49c277c6635de21c936946d8640cc4c9 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:56:25 +0100 Subject: [PATCH 071/127] Palindrome products --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 6044dc5931..02f0f65253 100644 --- a/config.json +++ b/config.json @@ -1760,7 +1760,11 @@ "slug": "palindrome-products", "name": "Palindrome Products", "uuid": "5ab8275f-bf1d-472d-9545-8ac622ce6f5d", - "prerequisites": [], + "prerequisites": [ + "strings", + "enum", + "ranges" + ], "difficulty": 5, "topics": [ "math", From 1151ba8bcc95975f8bd309baedd1c9b440a75a16 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 15:59:03 +0100 Subject: [PATCH 072/127] Pascals triangle --- config.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index 02f0f65253..61d6868345 100644 --- a/config.json +++ b/config.json @@ -1731,7 +1731,7 @@ "name": "Diffie Hellman", "uuid": "92caf2b9-3fca-401c-8daa-aaa0193e704f", "prerequisites": [ - "range", + "ranges", "randomness", "erlang-libraries" ], @@ -1775,7 +1775,11 @@ "slug": "pascals-triangle", "name": "Pascals Triangle", "uuid": "b85c37c7-a76e-41fa-9ce6-abcdba2bd683", - "prerequisites": [], + "prerequisites": [ + "enum", + "ranges", + "recursion" + ], "difficulty": 3, "topics": [ "algorithms", From 9d33b39f981faa672b05d74ae23de11a40cad5a2 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 31 Jan 2021 16:01:46 +0100 Subject: [PATCH 073/127] Spiral matrix --- config.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 61d6868345..3d1402ec57 100644 --- a/config.json +++ b/config.json @@ -1791,7 +1791,11 @@ "slug": "spiral-matrix", "name": "Spiral Matrix", "uuid": "cf28d2b2-763e-404b-90b0-637263d3bba6", - "prerequisites": [], + "prerequisites": [ + "lists", + "enum", + "recursion" + ], "difficulty": 4, "topics": [ "lists", From 713f51f9eeee65072fe9355a2ee3798768b06da0 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Tue, 2 Feb 2021 08:24:33 +0100 Subject: [PATCH 074/127] Do not require "errors" on easy exerises --- config.json | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/config.json b/config.json index c1efdb9d82..a2d7b6c41a 100644 --- a/config.json +++ b/config.json @@ -792,6 +792,8 @@ "name": "Protein Translation", "uuid": "84af7be8-8f90-4990-9d48-b5324a0d4354", "prerequisites": [ + "atoms", + "tuples", "maps", "enum", "recursion", @@ -799,8 +801,7 @@ "pattern-matching", "strings", "binaries", - "regular-expressions", - "errors" + "regular-expressions" ], "difficulty": 2, "topics": [ @@ -1115,13 +1116,14 @@ "name": "Triangle", "uuid": "546d92c7-c57b-4cbb-a721-9c393817a193", "prerequisites": [ + "atoms", + "tuples", "multiple-clause-functions", "pattern-matching", "guards", "cond", "case", - "if", - "errors" + "if" ], "difficulty": 2, "topics": [ @@ -1188,12 +1190,13 @@ "name": "Hamming", "uuid": "aca03bcb-eb70-4646-be34-8c1a44026e9b", "prerequisites": [ + "atoms", + "tuples", "charlists", "multiple-clause-functions", "guards", "enum", - "recursion", - "errors" + "recursion" ], "difficulty": 2, "topics": [ @@ -1237,6 +1240,8 @@ "name": "Say", "uuid": "5ecbe1c9-12e3-42b6-921a-bc2d32011930", "prerequisites": [ + "atoms", + "tuples", "strings", "multiple-clause-functions", "case", @@ -1244,8 +1249,7 @@ "enum", "recursion", "maps", - "ranges", - "errors" + "ranges" ], "difficulty": 3, "topics": [ @@ -1398,12 +1402,13 @@ "name": "Grains", "uuid": "b030fa38-8935-4665-98c3-77f8434a6ea1", "prerequisites": [ + "atoms", + "tuples", "multiple-clause-functions", "pattern-matching", "guards", "enum", "ranges", - "errors", "erlang-libraries", "bit-manipulation" ], @@ -1440,11 +1445,11 @@ "name": "Simple Linked List", "uuid": "e5d2386a-3021-4329-a4b7-6164e49df776", "prerequisites": [ + "atoms", "tuples", "pattern-matching", "recursion", - "tail-call-recursion", - "errors" + "tail-call-recursion" ], "difficulty": 1, "topics": [ @@ -1493,13 +1498,14 @@ "name": "Change", "uuid": "14bddd31-a68f-4a16-830f-6e8ecf8199f2", "prerequisites": [ + "atoms", + "tuples", "multiple-clause-functions", "pattern-matching", "guards", "recursion", "enum", - "maps", - "errors" + "maps" ], "difficulty": 3, "topics": [ @@ -1690,14 +1696,15 @@ "name": "Perfect Numbers", "uuid": "cf4816a5-8cee-4a85-8bbb-236c0676123c", "prerequisites": [ + "atoms", + "tuples", "cond", "case", "multiple-clause-functions", "pattern-matching", "guards", "enum", - "recursion", - "errors" + "recursion" ], "difficulty": 3, "topics": [ From 45f15bb162699059e8143556693300548b083986 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:06:26 +0100 Subject: [PATCH 075/127] Remove concepts that don't exist yet --- config.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index a2d7b6c41a..6131e04d73 100644 --- a/config.json +++ b/config.json @@ -643,8 +643,8 @@ "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", "prerequisites": [ "processes", - "agent", - "genserver" + "pids", + "agent" ], "difficulty": 7, "topics": [ @@ -1754,7 +1754,8 @@ "strings", "regular-expressions", "enum", - "task" + "processes", + "pids" ], "difficulty": 4, "topics": [ From 7ceca7dd4add26db6261d2bd21fa206df5ba8434 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:16:01 +0100 Subject: [PATCH 076/127] Custom set --- config.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 6131e04d73..1676c1be28 100644 --- a/config.json +++ b/config.json @@ -1813,7 +1813,21 @@ "slug": "custom-set", "name": "Custom Set", "uuid": "1219528b-3438-4313-84c5-a9c1bbb6ffd3", - "prerequisites": [], + "prerequisites": [ + "lists", + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "guards", + "structs", + "maps", + "enum" + ], + "practices": [ + "maps" + ], "difficulty": 5, "topics": [ "collections", From 70d08d138e76809ac7c78274b89692133023606e Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:20:31 +0100 Subject: [PATCH 077/127] Saddle points --- config.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 1676c1be28..1f236af6d7 100644 --- a/config.json +++ b/config.json @@ -1838,7 +1838,14 @@ "slug": "saddle-points", "name": "Saddle Points", "uuid": "8e5c050a-ff42-4a23-ba32-84595b7476f4", - "prerequisites": [], + "prerequisites": [ + "lists", + "strings", + "enum" + ], + "practices": [ + "enum" + ], "difficulty": 5, "topics": [ "enumeration", From 41fd7565342b6cc458ec45c77419a8af1c42c320 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:26:13 +0100 Subject: [PATCH 078/127] Connect --- config.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 1f236af6d7..81de3a98ad 100644 --- a/config.json +++ b/config.json @@ -1857,7 +1857,20 @@ "slug": "connect", "name": "Connect", "uuid": "c36fd67a-a370-49b7-b778-9a542e2c5a75", - "prerequisites": [], + "prerequisites": [ + "lists", + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "guards", + "strings", + "enum" + ], + "practices": [ + "enum" + ], "difficulty": 7, "topics": [ "reduce", From 3ebe7f316dee1a2d6e3141b9f5e81de67b449227 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:31:25 +0100 Subject: [PATCH 079/127] Minesweeper --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 81de3a98ad..51208f172f 100644 --- a/config.json +++ b/config.json @@ -1881,7 +1881,23 @@ "slug": "minesweeper", "name": "Minesweeper", "uuid": "8d665135-31dc-490a-8f6d-51c6654099bd", - "prerequisites": [], + "prerequisites": [ + "lists", + "charlists", + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "guards", + "strings", + "enum", + "maps", + "ranges" + ], + "practices": [ + "enum" + ], "difficulty": 7, "topics": [ "algorithms", From f9e31299c2ccfd10ae66eec455997cc0d5ace8d9 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 08:37:26 +0100 Subject: [PATCH 080/127] Queen attack --- config.json | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 51208f172f..849cfd1742 100644 --- a/config.json +++ b/config.json @@ -1909,7 +1909,25 @@ "slug": "queen-attack", "name": "Queen Attack", "uuid": "5bc0d877-ad13-461e-bdbd-cd262b875dbb", - "prerequisites": [], + "prerequisites": [ + "lists", + "cond", + "case", + "if", + "multiple-clause-functions", + "pattern-matching", + "guards", + "enum", + "ranges", + "errors", + "exceptions", + "structs" + ], + "practices": [ + "structs", + "pattern-matching", + "exceptions" + ], "difficulty": 7, "topics": [ "algorithms", From 0605d3b85624c1e845684211b0f42b4e107135ce Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 17:21:40 +0100 Subject: [PATCH 081/127] Armstrong Numbers --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 849cfd1742..10f3e4b902 100644 --- a/config.json +++ b/config.json @@ -1938,7 +1938,15 @@ "slug": "armstrong-numbers", "name": "Armstrong Numbers", "uuid": "8f40f0f6-95e6-4a4c-a576-3d677ffbbd9f", - "prerequisites": [], + "prerequisites": [ + "integers", + "lists", + "enum", + "erlang-libraries" + ], + "practices": [ + "integers" + ], "difficulty": 2, "topics": [ "algorithms", From 95524f44c0b4163b14929062e270694acf979fac Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 17:26:13 +0100 Subject: [PATCH 082/127] Simple Cipher --- config.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 10f3e4b902..2bb39d5597 100644 --- a/config.json +++ b/config.json @@ -1957,7 +1957,21 @@ "slug": "simple-cipher", "name": "Simple Cipher", "uuid": "dbea6e3b-1c0c-471f-9af3-f8fd3cbb957a", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "ranges", + "strings", + "charlists", + "binaries", + "enum", + "streams" + ], + "practices": [ + "strings", + "charlists" + ], "difficulty": 3, "topics": [ "encryption", From c5186d2a458d5321d8dfed4119ad64fce9392a40 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 17:30:40 +0100 Subject: [PATCH 083/127] Allergies --- config.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 2bb39d5597..d3e046cb7d 100644 --- a/config.json +++ b/config.json @@ -1982,7 +1982,16 @@ "slug": "allergies", "name": "Allergies", "uuid": "9a1b599c-3175-4166-9b53-491a2f565db6", - "prerequisites": [], + "prerequisites": [ + "lists", + "maps", + "enum", + "bit-manipulation" + ], + "practices": [ + "bit-manipulation", + "enum" + ], "difficulty": 4, "topics": [ "binary_operators", From 35a70a3e61d9db828a545dc29451038ad0ad4eb2 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 17:34:41 +0100 Subject: [PATCH 084/127] Crypto Square --- config.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index d3e046cb7d..aea6e92b6e 100644 --- a/config.json +++ b/config.json @@ -2002,7 +2002,20 @@ "slug": "crypto-square", "name": "Crypto Square", "uuid": "132981c5-d3cd-426a-8a93-8a72b1cd8564", - "prerequisites": [], + "prerequisites": [ + "integers", + "floating-point-numbers", + "multiple-clause-functions", + "pattern-matching", + "strings", + "regular-expressions", + "enum", + "erlang-libraries" + ], + "practices": [ + "strings", + "enum" + ], "difficulty": 4, "topics": [ "algorithms", From 7bddc47dd2dc70811ca7e771c40e5e305f07544e Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:06:59 +0100 Subject: [PATCH 085/127] Largest Series Product --- config.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index aea6e92b6e..6dd9de13a2 100644 --- a/config.json +++ b/config.json @@ -2026,7 +2026,21 @@ "slug": "largest-series-product", "name": "Largest Series Product", "uuid": "79525094-76dd-4cf0-8956-fdd33de855e2", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "integers", + "strings", + "enum", + "ranges", + "errors", + "exceptions" + ], + "practices": [ + "integers", + "enum" + ], "difficulty": 4, "topics": [ "enumeration", From 97411c1b29f84c7d884fc39d4eae088f20b898c5 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:09:47 +0100 Subject: [PATCH 086/127] Clock --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 6dd9de13a2..af7ae372a8 100644 --- a/config.json +++ b/config.json @@ -2052,7 +2052,23 @@ "slug": "clock", "name": "Clock", "uuid": "e7cb9cd0-5893-4ebb-b801-f5d548945531", - "prerequisites": [], + "prerequisites": [ + "integers", + "multiple-clause-functions", + "pattern-matching", + "guards", + "if", + "case", + "cond", + "strings", + "structs", + "protocols" + ], + "practices": [ + "integers", + "structs", + "protocols" + ], "difficulty": 5, "topics": [ "integers", From 2aab62a0b52685fa731c1b80378ca1126b2a1c21 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:14:08 +0100 Subject: [PATCH 087/127] Sieve --- config.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index af7ae372a8..b1bcc077e8 100644 --- a/config.json +++ b/config.json @@ -2082,7 +2082,20 @@ "slug": "sieve", "name": "Sieve", "uuid": "78cfa21b-bc7f-426b-9ef3-57b8639e887b", - "prerequisites": [], + "prerequisites": [ + "integers", + "lists", + "multiple-clause-functions", + "pattern-matching", + "guards", + "ranges", + "enum", + "recursion" + ], + "practices": [ + "lists", + "recursion" + ], "difficulty": 5, "topics": [ "enumeration", From 52e41ef41abb021d7636a31c133c335de7bf2865 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:20:38 +0100 Subject: [PATCH 088/127] Poker --- config.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index b1bcc077e8..7953573fb3 100644 --- a/config.json +++ b/config.json @@ -2106,7 +2106,24 @@ "slug": "poker", "name": "Poker", "uuid": "53d67dde-5a53-4d89-b77c-027d144135b9", - "prerequisites": [], + "prerequisites": [ + "tuples", + "lists", + "maps", + "enum", + "recursion", + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "structs" + ], + "practices": [ + "enum", + "pattern-matching" + ], "difficulty": 7, "topics": [ "sorting" From 42cad009ef1a4ac1fd84180ff6af8c6f0b7f12fa Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:25:15 +0100 Subject: [PATCH 089/127] Atbash Cipher --- config.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 7953573fb3..d0961aa751 100644 --- a/config.json +++ b/config.json @@ -2133,7 +2133,19 @@ "slug": "atbash-cipher", "name": "Atbash Cipher", "uuid": "eab8a96f-74af-4e3d-8039-d1d74714f72b", - "prerequisites": [], + "prerequisites": [ + "strings", + "charlists", + "regular-expressions", + "ranges", + "maps", + "enum", + "recursion" + ], + "practices": [ + "strings", + "charlists" + ], "difficulty": 3, "topics": [ "encryption" From 9e979012e986d3cc4eddf3740d6e51723870f710 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:30:54 +0100 Subject: [PATCH 090/127] Grep --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index d0961aa751..016ebb5a3b 100644 --- a/config.json +++ b/config.json @@ -2155,7 +2155,23 @@ "slug": "grep", "name": "Grep", "uuid": "b2630a58-6ee1-4b3b-ad5c-e09b8bfe2a30", - "prerequisites": [], + "prerequisites": [ + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "enum", + "strings", + "regular-expressions", + "file" + ], + "practices": [ + "strings", + "regular-expressions", + "file" + ], "difficulty": 3, "topics": [ "enumerations", From f7d4c1d06c211bec3cc2304c9788896f30c50169 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:34:38 +0100 Subject: [PATCH 091/127] Difference Of Squares --- config.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 016ebb5a3b..0017e87667 100644 --- a/config.json +++ b/config.json @@ -2182,7 +2182,15 @@ "slug": "difference-of-squares", "name": "Difference Of Squares", "uuid": "bb9b24da-1ee6-42fb-936f-5fc41d97ee27", - "prerequisites": [], + "prerequisites": [ + "integers", + "enum", + "ranges" + ], + "practices": [ + "enum", + "ranges" + ], "difficulty": 4, "topics": [ "math", From 883a235e43aa6f6ec13d0c6298294a9766cd7b38 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:44:38 +0100 Subject: [PATCH 092/127] Dominoes --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 0017e87667..02df93b12c 100644 --- a/config.json +++ b/config.json @@ -2201,7 +2201,23 @@ "slug": "dominoes", "name": "Dominoes", "uuid": "9fdeb525-90d8-45ca-9a24-ca46b4363e03", - "prerequisites": [], + "prerequisites": [ + "tuples", + "atoms", + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "enum", + "recursion", + "tail-call-recursion" + ], + "practices": [ + "recursion", + "tail-call-recursion" + ], "difficulty": 4, "topics": [ "algorithms", From 87d3b5db5607db811da3c7d4b4cf21e3da339e4f Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:49:39 +0100 Subject: [PATCH 093/127] Alphametics --- config.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 02df93b12c..47dfa6e207 100644 --- a/config.json +++ b/config.json @@ -2231,7 +2231,23 @@ "slug": "alphametics", "name": "Alphametics", "uuid": "7ed99829-acd8-4724-b92f-85146f1709f9", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "enum", + "charlists", + "ranges" + ], + "practices": [ + "strings", + "enum" + ], "difficulty": 5, "topics": [ "algorithms", From f282b8317dc5b6877fc73076bec1647cf8317bfe Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:53:35 +0100 Subject: [PATCH 094/127] Pythagorean Triplet --- config.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 47dfa6e207..17ad2df61e 100644 --- a/config.json +++ b/config.json @@ -2259,7 +2259,14 @@ "slug": "pythagorean-triplet", "name": "Pythagorean Triplet", "uuid": "087a2a3b-71e2-4473-ab2f-3be5240567b5", - "prerequisites": [], + "prerequisites": [ + "integers", + "ranges", + "list-comprehensions" + ], + "practices": [ + "list-comprehensions" + ], "difficulty": 5, "topics": [ "algorithms", From 33696af1ca2a9fa8e3d7b9402c83082d46f8e10e Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 20:56:04 +0100 Subject: [PATCH 095/127] Wordy --- config.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 17ad2df61e..e5d0af9c34 100644 --- a/config.json +++ b/config.json @@ -2278,7 +2278,22 @@ "slug": "wordy", "name": "Wordy", "uuid": "087940a2-5372-4ff3-aa9f-ce2eb982d91c", - "prerequisites": [], + "prerequisites": [ + "strings", + "regular-expressions", + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "enum", + "errors", + "exceptions" + ], + "practices": [ + "regular-expressions" + ], "difficulty": 6, "topics": [ "parsers" From 06ffd874617515cd4209898f9713ffb4fd6088b0 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Wed, 3 Feb 2021 21:08:08 +0100 Subject: [PATCH 096/127] Dot DSL --- config.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index e5d0af9c34..5ec869e9e9 100644 --- a/config.json +++ b/config.json @@ -2303,7 +2303,22 @@ "slug": "dot-dsl", "name": "Dot DSL", "uuid": "c316b8ef-7b2d-43d4-b402-f7d28b0cdaa7", - "prerequisites": [], + "prerequisites": [ + "structs", + "regular-expressions", + "multiple-clause-functions", + "pattern-matching", + "guards", + "case", + "cond", + "if", + "enum", + "errors", + "exceptions" + ], + "practices": [ + "structs" + ], "difficulty": 8, "topics": [ "graphs", From fe928c635a9d0dedcdab978b2470687116feddba Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Thu, 4 Feb 2021 08:29:35 +0100 Subject: [PATCH 097/127] "practices" batch 1 --- config.json | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/config.json b/config.json index 5ec869e9e9..2d4f87e031 100644 --- a/config.json +++ b/config.json @@ -489,6 +489,7 @@ "name": "Hello World", "uuid": "cc96d65d-1c79-40d0-8fd2-9a6665a43b01", "prerequisites": [], + "practices": [],, "difficulty": 1, "topics": [ "strings" @@ -505,6 +506,9 @@ "case", "enum" ], + "practices": [ + "charlists" + ], "difficulty": 2, "topics": [ "strings" @@ -520,6 +524,10 @@ "enum", "maps" ], + "practices": [ + "strings", + "regular-expressions" + ], "difficulty": 2, "topics": [ "lists", @@ -542,6 +550,9 @@ "cond", "case" ], + "practices": [ + "recursion" + ], "difficulty": 2, "topics": [ "algorithms", @@ -557,6 +568,10 @@ "regular-expressions", "cond" ], + "practices": [ + "strings", + "cond" + ], "difficulty": 2, "topics": [ "control_flow", @@ -574,6 +589,10 @@ "enum", "recursion" ], + "practices": [ + "multiple-clause-functions", + "strings" + ], "difficulty": 3, "topics": [ "pattern_matching", @@ -594,6 +613,10 @@ "structs", "errors" ], + "practices": [ + "pattern-matching", + "structs" + ], "difficulty": 6, "topics": [ "pattern_matching", @@ -611,6 +634,11 @@ "multiple-clause-functions", "pattern-matching" ], + "practices": [ + "lists", + "recursion", + "tail-call-recursion" + ], "difficulty": 4, "topics": [ "enumeration", @@ -630,8 +658,13 @@ "multiple-clause-functions", "pattern-matching", "cond", + "case", "if" ], + "practices": [ + "strings", + "regular-expressions" + ], "difficulty": 5, "topics": [ "refactoring" @@ -646,6 +679,11 @@ "pids", "agent" ], + "practices": [ + "processes", + "pids", + "agent" + ], "difficulty": 7, "topics": [ "otp" @@ -665,6 +703,10 @@ "pattern-matching", "multiple-clause-functions" ], + "practices": [ + "structs", + "recursion" + ], "difficulty": 8, "topics": [ "algorithms", @@ -690,6 +732,11 @@ "structs", "errors" ], + "practices": [ + "pattern-matching", + "guards", + "structs" + ], "difficulty": 8, "topics": [ "algorithms", @@ -716,6 +763,11 @@ "case", "structs", "errors", + "exceptions", + "dynamic-dispatch" + ], + "practices": [ + "regular-expressions", "exceptions" ], "difficulty": 10, @@ -732,6 +784,9 @@ "enum", "recursion" ], + "practices": [ + "enum" + ], "difficulty": 1, "topics": [ "enumerables" @@ -746,6 +801,11 @@ "guards", "default-arguments" ], + "practices": [ + "strings", + "guards", + "default-arguments" + ], "difficulty": 1, "topics": [ "strings" @@ -761,6 +821,10 @@ "enum", "recursion" ], + "practices": [ + "charlists", + "enum" + ], "difficulty": 2, "topics": [ "enumerables", @@ -781,6 +845,9 @@ "if", "case" ], + "practices": [ + "strings" + ], "difficulty": 2, "topics": [ "pattern_matching", @@ -803,6 +870,11 @@ "binaries", "regular-expressions" ], + "practices": [ + "strings", + "case", + "pattern-matching" + ], "difficulty": 2, "topics": [ "pattern_matching", @@ -824,6 +896,10 @@ "multiple-clause-functions", "guards" ], + "practices": [ + "charlists", + "ranges" + ], "difficulty": 2, "topics": [ "string_processing" From 0c3092cbab7d51b184de70229e14cd1add4a2aaf Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Thu, 4 Feb 2021 08:45:02 +0100 Subject: [PATCH 098/127] Fix json syntax error --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index 2d4f87e031..ba4d89e5bd 100644 --- a/config.json +++ b/config.json @@ -489,7 +489,7 @@ "name": "Hello World", "uuid": "cc96d65d-1c79-40d0-8fd2-9a6665a43b01", "prerequisites": [], - "practices": [],, + "practices": [], "difficulty": 1, "topics": [ "strings" From d148f385a23c4f22634ddaaa25c6c679c7eb0022 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Thu, 4 Feb 2021 16:48:52 +0100 Subject: [PATCH 099/127] "practices" batch 2 --- config.json | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index ba4d89e5bd..eb51787dc1 100644 --- a/config.json +++ b/config.json @@ -919,6 +919,9 @@ "recursion", "bit-manipulation" ], + "practices": [ + "bit-manipulation" + ], "difficulty": 2, "topics": [ "binary_representation" @@ -935,6 +938,9 @@ "pattern-matching", "maps" ], + "practices": [ + "floating-point-numbers" + ], "difficulty": 2, "topics": [ "pattern_matching" @@ -953,6 +959,10 @@ "case", "if" ], + "practices": [ + "lists", + "recursion" + ], "difficulty": 2, "topics": [ "collections" @@ -967,6 +977,11 @@ "lists", "recursion" ], + "practices": [ + "anonymous-functions", + "lists", + "recursion" + ], "difficulty": 2, "topics": [ "recursion", @@ -980,7 +995,12 @@ "prerequisites": [ "strings", "enum", - "regular-expressions" + "regular-expressions", + "pipe-operator" + ], + "practices": [ + "regular-expressions", + "pipe-operator" ], "difficulty": 2, "topics": [ @@ -1000,6 +1020,9 @@ "maps", "enum" ], + "practices": [ + "enum" + ], "difficulty": 2, "topics": [ "conditionals" From b3a6ea80ef2a67f58f4da59ab757f2a6b58a38c0 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Thu, 4 Feb 2021 17:30:45 +0100 Subject: [PATCH 100/127] "practices" batch 3 --- config.json | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 153 insertions(+), 5 deletions(-) diff --git a/config.json b/config.json index eb51787dc1..94951e7c02 100644 --- a/config.json +++ b/config.json @@ -1038,6 +1038,10 @@ "enum", "if" ], + "practices": [ + "strings", + "regular-expressions" + ], "difficulty": 2, "topics": [ "algorithms", @@ -1052,7 +1056,13 @@ "multiple-clause-functions", "guards", "strings", - "enum" + "enum", + "pipe-operator" + ], + "practices": [ + "strings", + "enum", + "pipe-operator" ], "difficulty": 2, "topics": [ @@ -1071,6 +1081,10 @@ "ranges", "randomness" ], + "practices": [ + "structs", + "randomness" + ], "difficulty": 3, "topics": [ "random", @@ -1088,6 +1102,10 @@ "recursion", "ranges" ], + "practices": [ + "charlists", + "ranges" + ], "difficulty": 2, "topics": [ "enumerations", @@ -1104,6 +1122,10 @@ "enum", "recursion" ], + "practices": [ + "strings", + "enum" + ], "difficulty": 2, "topics": [ "reduce" @@ -1118,6 +1140,10 @@ "recursion", "ranges" ], + "practices": [ + "enum", + "ranges" + ], "difficulty": 2, "topics": [ "algorithms", @@ -1134,6 +1160,9 @@ "maps", "enum" ], + "practices": [ + "maps" + ], "difficulty": 3, "topics": [ "maps" @@ -1148,6 +1177,10 @@ "enum", "regular-expressions" ], + "practices": [ + "enum", + "regular-expressions" + ], "difficulty": 3, "topics": [ "algorithms", @@ -1168,6 +1201,11 @@ "maps", "ranges" ], + "practices": [ + "multiple-clause-functions", + "strings", + "recursion" + ], "difficulty": 3, "topics": [ "enumerations", @@ -1185,6 +1223,11 @@ "multiple-clause-functions", "guards" ], + "practices": [ + "integers", + "recursion", + "guards" + ], "difficulty": 2, "topics": [ "math", @@ -1204,6 +1247,9 @@ "pattern-matching", "recursion" ], + "practices": [ + "lists" + ], "difficulty": 2, "topics": [ "enumeration", @@ -1224,6 +1270,11 @@ "case", "if" ], + "practices": [ + "atoms", + "pattern-matching", + "guards" + ], "difficulty": 2, "topics": [ "algorithms" @@ -1240,6 +1291,10 @@ "pattern-matching", "guards" ], + "practices": [ + "lists", + "recursion" + ], "difficulty": 3, "topics": [ "lists", @@ -1263,6 +1318,11 @@ "multiple-clause-functions", "binaries" ], + "practices": [ + "strings", + "recursion", + "pattern-matching" + ], "difficulty": 3, "topics": [ "algorithms", @@ -1278,6 +1338,10 @@ "strings", "enum" ], + "practices": [ + "strings", + "enum" + ], "difficulty": 2, "topics": [ "enumeration", @@ -1297,6 +1361,9 @@ "enum", "recursion" ], + "practices": [ + "enum" + ], "difficulty": 2, "topics": [ "string_processing" @@ -1311,6 +1378,11 @@ "enum", "structs" ], + "practices": [ + "strings", + "enum", + "structs" + ], "difficulty": 3, "topics": [ "string_processing", @@ -1328,6 +1400,10 @@ "pattern-matching", "binaries" ], + "practices": [ + "strings", + "regular-expressions" + ], "difficulty": 3, "topics": [ "pattern_matching", @@ -1339,6 +1415,7 @@ "name": "Say", "uuid": "5ecbe1c9-12e3-42b6-921a-bc2d32011930", "prerequisites": [ + "integers", "atoms", "tuples", "strings", @@ -1348,7 +1425,13 @@ "enum", "recursion", "maps", - "ranges" + "ranges", + "module-attributes-as-constants" + ], + "practices": [ + "guards", + "maps", + "module-attributes-as-constants" ], "difficulty": 3, "topics": [ @@ -1370,8 +1453,15 @@ "guards", "ranges", "streams", + "errors", "exceptions" ], + "practices": [ + "integers", + "recursion", + "ranges", + "errors", + ], "difficulty": 2, "topics": [ "algorithms", @@ -1391,6 +1481,11 @@ "guards", "cond" ], + "practices": [ + "tuples", + "recursion", + "cond" + ], "difficulty": 3, "topics": [ "algorithms", @@ -1410,6 +1505,11 @@ "ranges", "enum" ], + "practices": [ + "strings", + "regular-expressions", + "ranges" + ], "difficulty": 3, "topics": [ "string_processing" @@ -1425,6 +1525,12 @@ "multiple-clause-functions", "guards" ], + "practices": [ + "integers", + "booleans", + "multiple-clause-functions", + "guards" + ], "difficulty": 3, "topics": [ "algorithms" @@ -1446,6 +1552,11 @@ "case", "if" ], + "practices": [ + "maps", + "enum", + "pattern-matching" + ], "difficulty": 4, "topics": [ "formatting", @@ -1467,7 +1578,14 @@ "if", "recursion", "tail-call-recursion", - "enum" + "enum", + "nil" + ], + "practices": [ + "integers", + "multiple-clause-functions", + "pattern-matching", + "nil" ], "difficulty": 2, "topics": [ @@ -1488,7 +1606,14 @@ "case", "if", "enum", - "maps" + "maps", + "recursion", + "nil" + ], + "practices": [ + "maps", + "recursion", + "nil" ], "difficulty": 3, "topics": [ @@ -1511,6 +1636,12 @@ "erlang-libraries", "bit-manipulation" ], + "practices": [ + "atoms", + "tuples", + "enum", + "ranges" + ], "difficulty": 3, "topics": [ "recursion", @@ -1522,6 +1653,7 @@ "name": "Meetup", "uuid": "68fee2cd-a5bc-40f2-8936-a3bb10463498", "prerequisites": [ + "atoms", "cond", "case", "if", @@ -1532,6 +1664,11 @@ "ranges", "erlang-libraries" ], + "practices": [ + "atoms", + "pattern-matching", + "erlang-libraries" + ], "difficulty": 4, "topics": [ "calendar", @@ -1550,6 +1687,13 @@ "recursion", "tail-call-recursion" ], + "practices": [ + "atoms", + "tuples", + "pattern-matching", + "recursion", + "tail-call-recursion" + ], "difficulty": 1, "topics": [ "recursion" @@ -1562,7 +1706,11 @@ "prerequisites": [ "strings", "maps", - "enum" + "enum", + "list-comprehensions" + ], + "practices": [ + "list-comprehensions" ], "difficulty": 2, "topics": [ From 41cd680b82cfed7415cab2b06bfe0eeca326ddb5 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Thu, 4 Feb 2021 17:40:43 +0100 Subject: [PATCH 101/127] "practices" batch 4 --- config.json | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index 94951e7c02..195134e588 100644 --- a/config.json +++ b/config.json @@ -1734,6 +1734,11 @@ "enum", "strings" ], + "practices": [ + "recursion", + "tail-call-recursion", + "strings" + ], "difficulty": 3, "topics": [ "binary_operators", @@ -1745,6 +1750,7 @@ "name": "Change", "uuid": "14bddd31-a68f-4a16-830f-6e8ecf8199f2", "prerequisites": [ + "integers", "atoms", "tuples", "multiple-clause-functions", @@ -1754,6 +1760,10 @@ "enum", "maps" ], + "practices": [ + "integers", + "enum" + ], "difficulty": 3, "topics": [ "enumeration", @@ -1768,6 +1778,10 @@ "strings", "enum" ], + "practices": [ + "strings", + "enum" + ], "difficulty": 5, "topics": [ "strings", @@ -1790,6 +1804,12 @@ "maps", "binaries" ], + "practices": [ + "strings", + "multiple-clause-functions", + "pattern-matching", + "enum" + ], "difficulty": 6, "topics": [ "enumerations", @@ -1810,7 +1830,14 @@ "enum", "maps", "ranges", - "regular-expressions" + "regular-expressions", + "module-attributes-as-constants" + ], + "practices": [ + "string", + "enum", + "maps", + "module-attributes-as-constants" ], "difficulty": 3, "topics": [ @@ -1828,6 +1855,12 @@ "recursion", "ranges" ], + "practices": [ + "charlists", + "strings", + "enum", + "ranges" + ], "difficulty": 5, "topics": [ "algorithms", From 560965a55d396038a94f14e885302feabbdf6aaa Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 08:26:05 +0100 Subject: [PATCH 102/127] "practices" batch 5 --- config.json | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index 195134e588..bda9acb737 100644 --- a/config.json +++ b/config.json @@ -1884,6 +1884,11 @@ "recursion", "enum" ], + "practices": [ + "integers", + "strings", + "enum" + ], "difficulty": 5, "topics": [ "enumeration", @@ -1904,7 +1909,14 @@ "multiple-clause-functions", "guards", "pattern-matching", - "recursion" + "recursion", + "enum", + "module-attributes-as-constants" + ], + "practices": [ + "lists", + "enum", + "module-attributes-as-constants" ], "difficulty": 5, "topics": [ @@ -1929,6 +1941,11 @@ "ranges", "streams" ], + "practices": [ + "strings", + "enum", + "ranges" + ], "difficulty": 6, "topics": [ "encryption", @@ -1943,6 +1960,9 @@ "integers", "erlang-libraries" ], + "practices": [ + "erlang-libraries" + ], "difficulty": 3, "topics": [ "calendar", @@ -1964,6 +1984,11 @@ "recursion", "enum" ], + "practices": [ + "strings", + "charlists", + "ranges" + ], "difficulty": 3, "topics": [ "math", @@ -1986,6 +2011,13 @@ "enum", "recursion" ], + "practices": [ + "atoms", + "cond", + "pattern-matching", + "enum", + "recursion" + ], "difficulty": 3, "topics": [ "enumeration", @@ -2003,7 +2035,14 @@ "multiple-clause-functions", "pattern-matching", "guards", - "recursion" + "recursion", + "tail-call-recursion" + ], + "practices": [ + "multiple-clause-functions", + "pattern-matching", + "recursion", + "tail-call-recursion" ], "difficulty": 3, "topics": [ @@ -2021,6 +2060,11 @@ "randomness", "erlang-libraries" ], + "practices": [ + "ranges", + "randomness", + "erlang-libraries" + ], "difficulty": 4, "topics": [ "math" @@ -2037,6 +2081,11 @@ "processes", "pids" ], + "practices": [ + "strings", + "regular-expressions", + "processes" + ], "difficulty": 4, "topics": [ "concurrency", @@ -2050,7 +2099,13 @@ "prerequisites": [ "strings", "enum", - "ranges" + "ranges", + "list-comprehensions" + ], + "practices": [ + "enum", + "ranges", + "list-comprehensions" ], "difficulty": 5, "topics": [ @@ -2067,6 +2122,11 @@ "ranges", "recursion" ], + "practices": [ + "enum", + "ranges", + "recursion" + ], "difficulty": 3, "topics": [ "algorithms", @@ -2083,6 +2143,11 @@ "enum", "recursion" ], + "practices": [ + "lists", + "enum", + "recursion" + ], "difficulty": 4, "topics": [ "lists", From 0cedbd340589c825889faf72394665ea051bf05c Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 08:44:44 +0100 Subject: [PATCH 103/127] Find a "keyword-lists" exercise --- config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config.json b/config.json index bda9acb737..3b46dae10f 100644 --- a/config.json +++ b/config.json @@ -2659,9 +2659,11 @@ "if", "enum", "errors", - "exceptions" + "exceptions", + "keyword-lists" ], "practices": [ + "keyword-lists", "structs" ], "difficulty": 8, From 23a73f0d77b2bb7584380c43b5cfe448b37fbc49 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 08:44:53 +0100 Subject: [PATCH 104/127] Valid syntax in bin_tree.ex comment --- exercises/practice/zipper/lib/bin_tree.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/practice/zipper/lib/bin_tree.ex b/exercises/practice/zipper/lib/bin_tree.ex index 1366224bbf..e2d681e891 100644 --- a/exercises/practice/zipper/lib/bin_tree.ex +++ b/exercises/practice/zipper/lib/bin_tree.ex @@ -18,7 +18,7 @@ defimpl Inspect, for: BinTree do # A custom inspect instance purely for the tests, this makes error messages # much more readable. # - # BinTree[value: 3, left: BinTree[value: 5, right: BinTree[value: 6]]] becomes (3:(5::(6::)):) + # %BinTree{value: 3, left: %BinTree{value: 5, right: %BinTree{value: 6}}} becomes (3:(5::(6::)):) def inspect(%BinTree{value: value, left: left, right: right}, opts) do concat([ "(", From 0f0872d14b5ca5fcf5e55bbec214bce483576d3f Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 08:56:05 +0100 Subject: [PATCH 105/127] Add 1 "practices" for booleans, if, and case --- config.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/config.json b/config.json index 3b46dae10f..b9b1d5e895 100644 --- a/config.json +++ b/config.json @@ -564,11 +564,13 @@ "name": "Bob", "uuid": "d20b49dc-cb6d-45fc-a168-78d002072c75", "prerequisites": [ + "booleans", "strings", "regular-expressions", "cond" ], "practices": [ + "booleans", "strings", "cond" ], @@ -675,11 +677,13 @@ "name": "Bank Account", "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", "prerequisites": [ + "if", "processes", "pids", "agent" ], "practices": [ + "if", "processes", "pids", "agent" @@ -2513,6 +2517,7 @@ "file" ], "practices": [ + "case", "strings", "regular-expressions", "file" From 49662b0a11d9f7f8ff521e588d8a0768dd4a4bd3 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 09:00:39 +0100 Subject: [PATCH 106/127] fix syntax error --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index b9b1d5e895..621078dcb0 100644 --- a/config.json +++ b/config.json @@ -1464,7 +1464,7 @@ "integers", "recursion", "ranges", - "errors", + "errors" ], "difficulty": 2, "topics": [ From 6afab1116f0b142dc52535770087f9bf10b72f07 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 09:11:51 +0100 Subject: [PATCH 107/127] Add a throw-away analysis script --- prerequisites_analysis.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 prerequisites_analysis.js diff --git a/prerequisites_analysis.js b/prerequisites_analysis.js new file mode 100644 index 0000000000..59a733db4b --- /dev/null +++ b/prerequisites_analysis.js @@ -0,0 +1,32 @@ +// TODO: delete me, this is a throw-away script +const fs = require('fs') +const config = JSON.parse(fs.readFileSync('config.json')); +const conceptSlugs = config.concepts.map(x => x.slug) + +function uniq(value, index, self) { + return self.indexOf(value) === index; +} + +const conceptsThatArePracticed = config.exercises.practice.reduce((acc, x) => [...x.practices, ...acc], []).filter(uniq) +const conceptsThatArePrereq = config.exercises.practice.reduce((acc, x) => [...x.prerequisites, ...acc], []).filter(uniq) + +const conceptsThatAreNotPracticed = conceptSlugs.filter(x => !conceptsThatArePracticed.includes(x)) +const conceptsThatAreNotPrereq = conceptSlugs.filter(x => !conceptsThatArePrereq.includes(x)) + +console.log('Concepts that are not practiced by any exercise:') +console.log(conceptsThatAreNotPracticed) + +console.log('\n\nConcepts that are not required by any exercise:') +console.log(conceptsThatAreNotPrereq) + +console.log('\n\n============================================') + +console.log('\n\nConcepts and their practice exercises:') + +conceptSlugs.forEach(concept => { + console.log('~*~*~*~ ' + concept + ' ~*~*~*~') + console.log('\nPracticed by:') + console.log(config.exercises.practice.filter(x => x.practices.includes(concept)).map(x => x.slug)) + console.log('\nRequired by by:') + console.log(config.exercises.practice.filter(x => x.prerequisites.includes(concept)).map(x => x.slug)) +}) From 4402161d58bc4ce33214667b4956a9b302a3039c Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Fri, 5 Feb 2021 20:25:51 +0100 Subject: [PATCH 108/127] Typos --- prerequisites_analysis.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prerequisites_analysis.js b/prerequisites_analysis.js index 59a733db4b..6f56bd191f 100644 --- a/prerequisites_analysis.js +++ b/prerequisites_analysis.js @@ -24,9 +24,9 @@ console.log('\n\n============================================') console.log('\n\nConcepts and their practice exercises:') conceptSlugs.forEach(concept => { - console.log('~*~*~*~ ' + concept + ' ~*~*~*~') + console.log('\n~*~*~*~ ' + concept + ' ~*~*~*~') console.log('\nPracticed by:') console.log(config.exercises.practice.filter(x => x.practices.includes(concept)).map(x => x.slug)) - console.log('\nRequired by by:') + console.log('\nRequired by:') console.log(config.exercises.practice.filter(x => x.prerequisites.includes(concept)).map(x => x.slug)) }) From 30f0b774111e8a3abcffc73ca40ed19338651a23 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:03:45 +0100 Subject: [PATCH 109/127] resistor-color doesn't need recursion --- config.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config.json b/config.json index b71afd65d6..6612121c78 100644 --- a/config.json +++ b/config.json @@ -801,8 +801,7 @@ "uuid": "12efd520-e3e5-437f-b93e-38af14aa605d", "prerequisites": [ "lists", - "enum", - "recursion" + "enum" ], "practices": [ "enum" From 9da94734e045a0199ea21007192040ac844fd80a Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:05:28 +0100 Subject: [PATCH 110/127] nucleotide-count doesn't need recursion --- config.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config.json b/config.json index 6612121c78..02f99e7d2a 100644 --- a/config.json +++ b/config.json @@ -837,8 +837,7 @@ "prerequisites": [ "charlists", "maps", - "enum", - "recursion" + "enum" ], "practices": [ "charlists", From d8e83a57f7d914b15b5e598284865a1cf63cfbb9 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:10:26 +0100 Subject: [PATCH 111/127] space-age practices module-attributes-as-constants --- config.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index 02f99e7d2a..e6061505ea 100644 --- a/config.json +++ b/config.json @@ -954,10 +954,12 @@ "atoms", "multiple-clause-functions", "pattern-matching", - "maps" + "maps", + "module-attributes-as-constants" ], "practices": [ - "floating-point-numbers" + "floating-point-numbers", + "module-attributes-as-constants" ], "difficulty": 2, "topics": [ From d1aca4bb7251b2a243c3c7ebb034c85c7e158e7b Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:15:21 +0100 Subject: [PATCH 112/127] sum-of-multiples doesn't need recursion --- config.json | 1 - 1 file changed, 1 deletion(-) diff --git a/config.json b/config.json index e6061505ea..0a6c15decd 100644 --- a/config.json +++ b/config.json @@ -1157,7 +1157,6 @@ "uuid": "5b8eece1-845f-4a5a-8a2f-fe2bf66f5e57", "prerequisites": [ "enum", - "recursion", "ranges" ], "practices": [ From 03af2b6431411209231f716b6a1dc05b545cb389 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:17:28 +0100 Subject: [PATCH 113/127] all-your-base doesn't need nil anymore --- config.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/config.json b/config.json index 0a6c15decd..63730c5380 100644 --- a/config.json +++ b/config.json @@ -1599,14 +1599,12 @@ "if", "recursion", "tail-call-recursion", - "enum", - "nil" + "enum" ], "practices": [ "integers", "multiple-clause-functions", - "pattern-matching", - "nil" + "pattern-matching" ], "difficulty": 2, "topics": [ From e27914a7e123d4974c6414cbc5c768233bc5e1e7 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:22:47 +0100 Subject: [PATCH 114/127] Find more cases of default-arguments --- config.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index 63730c5380..bd0bda97eb 100644 --- a/config.json +++ b/config.json @@ -603,12 +603,14 @@ "prerequisites": [ "strings", "multiple-clause-functions", + "default-arguments", "ranges", "enum", "recursion" ], "practices": [ "multiple-clause-functions", + "default-arguments", "strings" ], "difficulty": 3, @@ -629,7 +631,8 @@ "strings", "enum", "structs", - "errors" + "errors", + "default-arguments" ], "practices": [ "pattern-matching", @@ -1845,6 +1848,7 @@ "string", "multiple-clause-functions", "pattern-matching", + "default-arguments", "recursion", "enum", "maps", @@ -1930,7 +1934,8 @@ "pattern-matching", "recursion", "enum", - "module-attributes-as-constants" + "module-attributes-as-constants", + "default-arguments" ], "practices": [ "lists", @@ -2119,7 +2124,8 @@ "strings", "enum", "ranges", - "list-comprehensions" + "list-comprehensions", + "default-arguments" ], "practices": [ "enum", @@ -2280,6 +2286,7 @@ "if", "multiple-clause-functions", "pattern-matching", + "default-arguments", "guards", "enum", "ranges", From 7ca92ffea8e5da9c0ce1a25da03322b0a160a91c Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:28:26 +0100 Subject: [PATCH 115/127] Redefine errors --- config.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index bd0bda97eb..d415e710ed 100644 --- a/config.json +++ b/config.json @@ -631,7 +631,6 @@ "strings", "enum", "structs", - "errors", "default-arguments" ], "practices": [ @@ -752,8 +751,7 @@ "cond", "if", "case", - "structs", - "errors" + "structs" ], "practices": [ "pattern-matching", @@ -791,6 +789,7 @@ ], "practices": [ "regular-expressions", + "errors", "exceptions" ], "difficulty": 10, @@ -2297,6 +2296,7 @@ "practices": [ "structs", "pattern-matching", + "errors", "exceptions" ], "difficulty": 7, From 53565f82d96bba22cfa2430c9fde5abb344567cf Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:45:08 +0100 Subject: [PATCH 116/127] Find more cases of nil --- config.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/config.json b/config.json index d415e710ed..339c78fbcd 100644 --- a/config.json +++ b/config.json @@ -1310,11 +1310,13 @@ "recursion", "multiple-clause-functions", "pattern-matching", - "guards" + "guards", + "nil" ], "practices": [ "lists", - "recursion" + "recursion", + "nil" ], "difficulty": 3, "topics": [ @@ -2687,7 +2689,8 @@ "enum", "errors", "exceptions", - "keyword-lists" + "keyword-lists", + "nil" ], "practices": [ "keyword-lists", From 78832374bb11ac4c0d3bcbf2fa70e539d72b791f Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Sun, 14 Feb 2021 11:54:53 +0100 Subject: [PATCH 117/127] Find more cases of pipe-operator --- config.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/config.json b/config.json index 339c78fbcd..09beb9b5b3 100644 --- a/config.json +++ b/config.json @@ -538,11 +538,13 @@ "strings", "regular-expressions", "enum", - "maps" + "maps", + "pipe-operator" ], "practices": [ "strings", - "regular-expressions" + "regular-expressions", + "pipe-operator" ], "difficulty": 2, "topics": [ @@ -1142,11 +1144,13 @@ "strings", "maps", "enum", - "recursion" + "recursion", + "pipe-operator" ], "practices": [ "strings", - "enum" + "enum", + "pipe-operator" ], "difficulty": 2, "topics": [ From 501d5e763d59ac17d9f21b9cdcedab1ccbcf1f6b Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 14 Feb 2021 10:54:52 -0600 Subject: [PATCH 118/127] prettier'd --- .prettierignore | 28 + .prettierrc | 27 + config.json | 1339 +++++++++-------------------------------------- 3 files changed, 313 insertions(+), 1081 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..bbe4496922 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,28 @@ +# IDE files +.idea/ +.vscode/ +.vs/ +.ionide/ + +# GitHub templates +.github/ISSUE_TEMPLATE/**/* + +# C#-specific files +languages/csharp/exercises/**/bin/ +languages/csharp/exercises/**/obj/ + +# F#-specific files +languages/fsharp/exercises/**/bin/ +languages/fsharp/exercises/**/obj/ + +# JavaScript-specific files +languages/javascript/exercises/**/node_modules/ + +# TypeScript-specific files +languages/typescript/exercises/**/node_modules/ + +# Julia-specific files +languages/julia/exercises/**/.meta/config.json + +# Language docs files +languages/*/docs/** \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..da188eb69f --- /dev/null +++ b/.prettierrc @@ -0,0 +1,27 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "endOfLine": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false, + "overrides": [ + { + "files": "languages/javascript/**/*.{js,jsx,ts,tsx,mjs}", + "options": { + "semi": true + } + } + ] +} diff --git a/config.json b/config.json index 09beb9b5b3..b87aa04f15 100644 --- a/config.json +++ b/config.json @@ -20,9 +20,7 @@ "slug": "lasagna", "name": "Lasagna", "uuid": "c29c6092-9d44-4f21-8138-b873384fd90b", - "concepts": [ - "basics" - ], + "concepts": ["basics"], "prerequisites": [], "status": "beta" }, @@ -30,50 +28,32 @@ "slug": "pacman-rules", "name": "Pacman Rules", "uuid": "5e743355-1ef3-4b5d-b59d-03bbc9697e6c", - "concepts": [ - "booleans" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["booleans"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "freelancer-rates", "name": "Freelancer Rates", "uuid": "fee79e03-1496-476f-964f-e60632cb13dc", - "concepts": [ - "integers", - "floating-point-numbers" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["integers", "floating-point-numbers"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "log-level", "name": "Log Level", "uuid": "b26a2f11-d80a-42b9-881a-3575a83ad211", - "concepts": [ - "cond", - "atoms" - ], - "prerequisites": [ - "booleans" - ], + "concepts": ["cond", "atoms"], + "prerequisites": ["booleans"], "status": "beta" }, { "slug": "language-list", "name": "Language List", "uuid": "3c53b340-680e-45c1-8979-3d79b441a65e", - "concepts": [ - "lists" - ], - "prerequisites": [ - "booleans" - ], + "concepts": ["lists"], + "prerequisites": ["booleans"], "status": "beta" }, { @@ -85,33 +65,22 @@ "guards", "default-arguments" ], - "prerequisites": [ - "cond" - ], + "prerequisites": ["cond"], "status": "beta" }, { "slug": "secrets", "name": "Secrets", "uuid": "1e3ceb20-715c-4157-9192-13284217affc", - "concepts": [ - "anonymous-functions", - "closures", - "bit-manipulation" - ], - "prerequisites": [ - "basics" - ], + "concepts": ["anonymous-functions", "closures", "bit-manipulation"], + "prerequisites": ["basics"], "status": "beta" }, { "slug": "kitchen-calculator", "name": "Kitchen Calculator", "uuid": "f729493d-2249-4c10-9c77-da907d10aae1", - "concepts": [ - "tuples", - "pattern-matching" - ], + "concepts": ["tuples", "pattern-matching"], "prerequisites": [ "atoms", "floating-point-numbers", @@ -123,37 +92,23 @@ "slug": "high-school-sweetheart", "name": "High School Sweetheart", "uuid": "335df1cf-6aba-4ab6-b5c3-b4305ade09a4", - "concepts": [ - "strings" - ], - "prerequisites": [ - "lists", - "pattern-matching" - ], + "concepts": ["strings"], + "prerequisites": ["lists", "pattern-matching"], "status": "beta" }, { "slug": "name-badge", "name": "Name Badge", "uuid": "b6ae6cb4-f908-436f-916c-fa847e4a82fb", - "concepts": [ - "nil", - "if" - ], - "prerequisites": [ - "strings", - "booleans" - ], + "concepts": ["nil", "if"], + "prerequisites": ["strings", "booleans"], "status": "beta" }, { "slug": "high-score", "name": "High Score", "uuid": "e7f3ba2b-a380-45d3-a48d-7ef3dc318a31", - "concepts": [ - "module-attributes-as-constants", - "maps" - ], + "concepts": ["module-attributes-as-constants", "maps"], "prerequisites": [ "lists", "tuples", @@ -166,9 +121,7 @@ "slug": "bird-count", "name": "Bird Count", "uuid": "e17088c8-c40f-4d4c-b5dd-d32f62b8087b", - "concepts": [ - "recursion" - ], + "concepts": ["recursion"], "prerequisites": [ "lists", "pattern-matching", @@ -181,70 +134,39 @@ "slug": "german-sysadmin", "name": "German Sysadmin", "uuid": "45f3a08f-fe0f-4e3e-b325-47bad3c74ea4", - "concepts": [ - "charlists", - "case" - ], - "prerequisites": [ - "lists", - "recursion", - "pattern-matching", - "guards" - ], + "concepts": ["charlists", "case"], + "prerequisites": ["lists", "recursion", "pattern-matching", "guards"], "status": "beta" }, { "slug": "basketball-website", "name": "Basketball Website", "uuid": "ba03df1d-20e4-4527-a8a7-afc97a834975", - "concepts": [ - "access-behaviour" - ], - "prerequisites": [ - "maps", - "strings", - "recursion", - "nil" - ], + "concepts": ["access-behaviour"], + "prerequisites": ["maps", "strings", "recursion", "nil"], "status": "beta" }, { "slug": "file-sniffer", "name": "File Sniffer", "uuid": "1653d476-5354-4d99-a990-1db418a7281c", - "concepts": [ - "binaries" - ], - "prerequisites": [ - "strings", - "pattern-matching", - "if", - "bitstrings" - ], + "concepts": ["binaries"], + "prerequisites": ["strings", "pattern-matching", "if", "bitstrings"], "status": "beta" }, { "slug": "dna-encoding", "name": "DNA Encoding", "uuid": "994c8760-8a58-4ef3-8a28-a0f9182f4d9f", - "concepts": [ - "bitstrings", - "tail-call-recursion" - ], - "prerequisites": [ - "charlists", - "recursion", - "pattern-matching" - ], + "concepts": ["bitstrings", "tail-call-recursion"], + "prerequisites": ["charlists", "recursion", "pattern-matching"], "status": "beta" }, { "slug": "boutique-inventory", "name": "Boutique Inventory", "uuid": "be4ef2d1-2851-425d-9780-0326fbcb9845", - "concepts": [ - "enum" - ], + "concepts": ["enum"], "prerequisites": [ "lists", "maps", @@ -259,24 +181,15 @@ "slug": "rpn-calculator", "name": "RPN Calculator", "uuid": "f660a2e1-bb50-4626-8d3f-6cd7c44fa8db", - "concepts": [ - "errors", - "try-rescue" - ], - "prerequisites": [ - "anonymous-functions", - "pattern-matching", - "structs" - ], + "concepts": ["errors", "try-rescue"], + "prerequisites": ["anonymous-functions", "pattern-matching", "structs"], "status": "beta" }, { "slug": "remote-control-car", "name": "Remote Control Car", "uuid": "d8d25b93-d918-421e-bb57-cbdaf428d9e2", - "concepts": [ - "structs" - ], + "concepts": ["structs"], "prerequisites": [ "maps", "multiple-clause-functions", @@ -292,22 +205,15 @@ "slug": "stack-underflow", "name": "Stack Underflow", "uuid": "9f698b46-fe8d-4641-a928-bcebfd9678df", - "concepts": [ - "exceptions" - ], - "prerequisites": [ - "access-behaviour", - "errors" - ], + "concepts": ["exceptions"], + "prerequisites": ["access-behaviour", "errors"], "status": "beta" }, { "slug": "wine-cellar", "name": "Wine Cellar", "uuid": "921a03be-662a-4aea-b8fc-a87d199b1528", - "concepts": [ - "keyword-lists" - ], + "concepts": ["keyword-lists"], "prerequisites": [ "lists", "tuples", @@ -321,126 +227,71 @@ "slug": "rpn-calculator-output", "name": "RPN Calculator Output", "uuid": "68a8f721-5db4-4b31-95c8-fa6c38f64327", - "concepts": [ - "try-rescue-else-after", - "dynamic-dispatch" - ], - "prerequisites": [ - "file", - "try-rescue" - ], + "concepts": ["try-rescue-else-after", "dynamic-dispatch"], + "prerequisites": ["file", "try-rescue"], "status": "wip" }, { "slug": "take-a-number", "name": "Take-A-Number", "uuid": "bec0b00f-816e-443a-af94-14ab4125e505", - "concepts": [ - "processes", - "pids" - ], - "prerequisites": [ - "atoms", - "recursion", - "pattern-matching", - "tuples" - ], + "concepts": ["processes", "pids"], + "prerequisites": ["atoms", "recursion", "pattern-matching", "tuples"], "status": "beta" }, { "slug": "mensch-aergere-dich-nicht", "name": "Mensch Ärgere Dich Nicht", "uuid": "3e2f8bc6-20b4-4e8f-a658-9c270342208e", - "concepts": [ - "streams", - "pipe-operator" - ], - "prerequisites": [ - "enum", - "tuples", - "if", - "ranges", - "randomness" - ], + "concepts": ["streams", "pipe-operator"], + "prerequisites": ["enum", "tuples", "if", "ranges", "randomness"], "status": "wip" }, { "slug": "community-garden", "name": "Community Garden", "uuid": "1d6be9ec-5b5c-4c81-9bfa-2e3fc78c978f", - "concepts": [ - "agent" - ], - "prerequisites": [ - "processes", - "maps", - "structs" - ], + "concepts": ["agent"], + "prerequisites": ["processes", "maps", "structs"], "status": "beta" }, { "slug": "date-parser", "name": "Date Parser", "uuid": "57198686-71c9-4f38-973a-a111435560e7", - "concepts": [ - "regular-expressions" - ], - "prerequisites": [ - "strings" - ], + "concepts": ["regular-expressions"], + "prerequisites": ["strings"], "status": "beta" }, { "slug": "boutique-suggestions", "name": "Boutique Suggestions", "uuid": "f8208858-901e-4e5a-9f34-689bf8ad156c", - "concepts": [ - "list-comprehensions" - ], - "prerequisites": [ - "enum", - "lists", - "maps", - "keyword-lists", - "tuples" - ], + "concepts": ["list-comprehensions"], + "prerequisites": ["enum", "lists", "maps", "keyword-lists", "tuples"], "status": "beta" }, { "slug": "bread-and-potions", "name": "Bread And Potions", "uuid": "a9fb9efa-ff37-4642-9118-c1351fd343ad", - "concepts": [ - "protocols" - ], - "prerequisites": [ - "structs", - "nil" - ], + "concepts": ["protocols"], + "prerequisites": ["structs", "nil"], "status": "beta" }, { "slug": "rpg-character-sheet", "name": "RPG Character Sheet", "uuid": "83c31f5f-fc94-4315-9053-df5a5f5d5fb7", - "concepts": [ - "io" - ], - "prerequisites": [ - "strings", - "maps", - "atoms" - ], + "concepts": ["io"], + "prerequisites": ["strings", "maps", "atoms"], "status": "beta" }, { "slug": "captains-log", "name": "Captain's Log", "uuid": "d805ae23-b5c9-494f-ab13-78a0e836391c", - "concepts": [ - "erlang-libraries", - "randomness" - ], + "concepts": ["erlang-libraries", "randomness"], "prerequisites": [ "enum", "ranges", @@ -455,40 +306,23 @@ "slug": "chessboard", "name": "Chessboard", "uuid": "6ea28f3e-a59a-45b0-83a7-38a2e96bdff7", - "concepts": [ - "ranges" - ], - "prerequisites": [ - "enum", - "integers", - "bitstrings", - "charlists" - ], + "concepts": ["ranges"], + "prerequisites": ["enum", "integers", "bitstrings", "charlists"], "status": "beta" }, { "slug": "newsletter", "name": "Newsletter", "uuid": "5564c89c-4706-4a48-99a4-2ad26457f66f", - "concepts": [ - "file" - ], - "prerequisites": [ - "strings", - "enum", - "io", - "processes", - "pids" - ], + "concepts": ["file"], + "prerequisites": ["strings", "enum", "io", "processes", "pids"], "status": "beta" }, { "slug": "library-fees", "name": "Library Fees", "uuid": "b5629003-638c-47c0-ad76-a0769f285053", - "concepts": [ - "dates-and-time" - ], + "concepts": ["dates-and-time"], "prerequisites": [ "integers", "floating-point-numbers", @@ -507,9 +341,7 @@ "prerequisites": [], "practices": [], "difficulty": 1, - "topics": [ - "strings" - ] + "topics": ["strings"] }, { "slug": "rna-transcription", @@ -522,13 +354,9 @@ "case", "enum" ], - "practices": [ - "charlists" - ], + "practices": ["charlists"], "difficulty": 2, - "topics": [ - "strings" - ] + "topics": ["strings"] }, { "slug": "word-count", @@ -541,17 +369,9 @@ "maps", "pipe-operator" ], - "practices": [ - "strings", - "regular-expressions", - "pipe-operator" - ], + "practices": ["strings", "regular-expressions", "pipe-operator"], "difficulty": 2, - "topics": [ - "lists", - "maps", - "reduce" - ] + "topics": ["lists", "maps", "reduce"] }, { "slug": "roman-numerals", @@ -568,35 +388,18 @@ "cond", "case" ], - "practices": [ - "recursion" - ], + "practices": ["recursion"], "difficulty": 2, - "topics": [ - "algorithms", - "pattern_matching" - ] + "topics": ["algorithms", "pattern_matching"] }, { "slug": "bob", "name": "Bob", "uuid": "d20b49dc-cb6d-45fc-a168-78d002072c75", - "prerequisites": [ - "booleans", - "strings", - "regular-expressions", - "cond" - ], - "practices": [ - "booleans", - "strings", - "cond" - ], + "prerequisites": ["booleans", "strings", "regular-expressions", "cond"], + "practices": ["booleans", "strings", "cond"], "difficulty": 2, - "topics": [ - "control_flow", - "string_processing" - ] + "topics": ["control_flow", "string_processing"] }, { "slug": "beer-song", @@ -616,10 +419,7 @@ "strings" ], "difficulty": 3, - "topics": [ - "pattern_matching", - "recursion" - ] + "topics": ["pattern_matching", "recursion"] }, { "slug": "robot-simulator", @@ -635,15 +435,9 @@ "structs", "default-arguments" ], - "practices": [ - "pattern-matching", - "structs" - ], + "practices": ["pattern-matching", "structs"], "difficulty": 6, - "topics": [ - "pattern_matching", - "structs" - ] + "topics": ["pattern_matching", "structs"] }, { "slug": "list-ops", @@ -656,17 +450,9 @@ "multiple-clause-functions", "pattern-matching" ], - "practices": [ - "lists", - "recursion", - "tail-call-recursion" - ], + "practices": ["lists", "recursion", "tail-call-recursion"], "difficulty": 4, - "topics": [ - "enumeration", - "lists", - "recursion" - ] + "topics": ["enumeration", "lists", "recursion"] }, { "slug": "markdown", @@ -683,35 +469,18 @@ "case", "if" ], - "practices": [ - "strings", - "regular-expressions" - ], + "practices": ["strings", "regular-expressions"], "difficulty": 5, - "topics": [ - "refactoring" - ] + "topics": ["refactoring"] }, { "slug": "bank-account", "name": "Bank Account", "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", - "prerequisites": [ - "if", - "processes", - "pids", - "agent" - ], - "practices": [ - "if", - "processes", - "pids", - "agent" - ], + "prerequisites": ["if", "processes", "pids", "agent"], + "practices": ["if", "processes", "pids", "agent"], "difficulty": 7, - "topics": [ - "otp" - ] + "topics": ["otp"] }, { "slug": "zipper", @@ -727,17 +496,9 @@ "pattern-matching", "multiple-clause-functions" ], - "practices": [ - "structs", - "recursion" - ], + "practices": ["structs", "recursion"], "difficulty": 8, - "topics": [ - "algorithms", - "recursion", - "structs", - "trees" - ] + "topics": ["algorithms", "recursion", "structs", "trees"] }, { "slug": "bowling", @@ -755,17 +516,9 @@ "case", "structs" ], - "practices": [ - "pattern-matching", - "guards", - "structs" - ], + "practices": ["pattern-matching", "guards", "structs"], "difficulty": 8, - "topics": [ - "algorithms", - "pattern_matching", - "structs" - ] + "topics": ["algorithms", "pattern_matching", "structs"] }, { "slug": "forth", @@ -789,70 +542,36 @@ "exceptions", "dynamic-dispatch" ], - "practices": [ - "regular-expressions", - "errors", - "exceptions" - ], + "practices": ["regular-expressions", "errors", "exceptions"], "difficulty": 10, - "topics": [ - "parsers" - ] + "topics": ["parsers"] }, { "slug": "resistor-color", "name": "Resistor Color", "uuid": "12efd520-e3e5-437f-b93e-38af14aa605d", - "prerequisites": [ - "lists", - "enum" - ], - "practices": [ - "enum" - ], + "prerequisites": ["lists", "enum"], + "practices": ["enum"], "difficulty": 1, - "topics": [ - "enumerables" - ] + "topics": ["enumerables"] }, { "slug": "two-fer", "name": "Two Fer", "uuid": "e7f3280e-0bef-4fac-8a69-cbfa2e5f818a", - "prerequisites": [ - "strings", - "guards", - "default-arguments" - ], - "practices": [ - "strings", - "guards", - "default-arguments" - ], + "prerequisites": ["strings", "guards", "default-arguments"], + "practices": ["strings", "guards", "default-arguments"], "difficulty": 1, - "topics": [ - "strings" - ] + "topics": ["strings"] }, { "slug": "nucleotide-count", "name": "Nucleotide Count", "uuid": "7404e885-747a-46fc-be0c-c53f4b0e162f", - "prerequisites": [ - "charlists", - "maps", - "enum" - ], - "practices": [ - "charlists", - "enum" - ], + "prerequisites": ["charlists", "maps", "enum"], + "practices": ["charlists", "enum"], "difficulty": 2, - "topics": [ - "enumerables", - "maps", - "string_processing" - ] + "topics": ["enumerables", "maps", "string_processing"] }, { "slug": "pig-latin", @@ -867,14 +586,9 @@ "if", "case" ], - "practices": [ - "strings" - ], + "practices": ["strings"], "difficulty": 2, - "topics": [ - "pattern_matching", - "string_processing" - ] + "topics": ["pattern_matching", "string_processing"] }, { "slug": "protein-translation", @@ -892,16 +606,9 @@ "binaries", "regular-expressions" ], - "practices": [ - "strings", - "case", - "pattern-matching" - ], + "practices": ["strings", "case", "pattern-matching"], "difficulty": 2, - "topics": [ - "pattern_matching", - "string_processing" - ] + "topics": ["pattern_matching", "string_processing"] }, { "slug": "rotational-cipher", @@ -918,14 +625,9 @@ "multiple-clause-functions", "guards" ], - "practices": [ - "charlists", - "ranges" - ], + "practices": ["charlists", "ranges"], "difficulty": 2, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "secret-handshake", @@ -941,13 +643,9 @@ "recursion", "bit-manipulation" ], - "practices": [ - "bit-manipulation" - ], + "practices": ["bit-manipulation"], "difficulty": 2, - "topics": [ - "binary_representation" - ] + "topics": ["binary_representation"] }, { "slug": "space-age", @@ -966,9 +664,7 @@ "module-attributes-as-constants" ], "difficulty": 2, - "topics": [ - "pattern_matching" - ] + "topics": ["pattern_matching"] }, { "slug": "strain", @@ -983,34 +679,18 @@ "case", "if" ], - "practices": [ - "lists", - "recursion" - ], + "practices": ["lists", "recursion"], "difficulty": 2, - "topics": [ - "collections" - ] + "topics": ["collections"] }, { "slug": "accumulate", "name": "Accumulate", "uuid": "e7c6a0d2-6aaf-4d55-99e2-8ffa65a5e8f0", - "prerequisites": [ - "anonymous-functions", - "lists", - "recursion" - ], - "practices": [ - "anonymous-functions", - "lists", - "recursion" - ], + "prerequisites": ["anonymous-functions", "lists", "recursion"], + "practices": ["anonymous-functions", "lists", "recursion"], "difficulty": 2, - "topics": [ - "recursion", - "reduce" - ] + "topics": ["recursion", "reduce"] }, { "slug": "acronym", @@ -1022,14 +702,9 @@ "regular-expressions", "pipe-operator" ], - "practices": [ - "regular-expressions", - "pipe-operator" - ], + "practices": ["regular-expressions", "pipe-operator"], "difficulty": 2, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "raindrops", @@ -1044,33 +719,18 @@ "maps", "enum" ], - "practices": [ - "enum" - ], + "practices": ["enum"], "difficulty": 2, - "topics": [ - "conditionals" - ] + "topics": ["conditionals"] }, { "slug": "run-length-encoding", "name": "Run Length Encoding", "uuid": "f4f759ea-53e1-42d6-a580-6e7b7d6a99a0", - "prerequisites": [ - "strings", - "regular-expressions", - "enum", - "if" - ], - "practices": [ - "strings", - "regular-expressions" - ], + "prerequisites": ["strings", "regular-expressions", "enum", "if"], + "practices": ["strings", "regular-expressions"], "difficulty": 2, - "topics": [ - "algorithms", - "strings" - ] + "topics": ["algorithms", "strings"] }, { "slug": "series", @@ -1083,15 +743,9 @@ "enum", "pipe-operator" ], - "practices": [ - "strings", - "enum", - "pipe-operator" - ], + "practices": ["strings", "enum", "pipe-operator"], "difficulty": 2, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "dnd-character", @@ -1105,15 +759,9 @@ "ranges", "randomness" ], - "practices": [ - "structs", - "randomness" - ], + "practices": ["structs", "randomness"], "difficulty": 3, - "topics": [ - "random", - "structs" - ] + "topics": ["random", "structs"] }, { "slug": "pangram", @@ -1126,15 +774,9 @@ "recursion", "ranges" ], - "practices": [ - "charlists", - "ranges" - ], + "practices": ["charlists", "ranges"], "difficulty": 2, - "topics": [ - "enumerations", - "strings" - ] + "topics": ["enumerations", "strings"] }, { "slug": "scrabble-score", @@ -1147,70 +789,36 @@ "recursion", "pipe-operator" ], - "practices": [ - "strings", - "enum", - "pipe-operator" - ], + "practices": ["strings", "enum", "pipe-operator"], "difficulty": 2, - "topics": [ - "reduce" - ] + "topics": ["reduce"] }, { "slug": "sum-of-multiples", "name": "Sum Of Multiples", "uuid": "5b8eece1-845f-4a5a-8a2f-fe2bf66f5e57", - "prerequisites": [ - "enum", - "ranges" - ], - "practices": [ - "enum", - "ranges" - ], + "prerequisites": ["enum", "ranges"], + "practices": ["enum", "ranges"], "difficulty": 2, - "topics": [ - "algorithms", - "math", - "reduce" - ] + "topics": ["algorithms", "math", "reduce"] }, { "slug": "grade-school", "name": "Grade School", "uuid": "4e6d3ddf-b696-40dc-ba02-ed998e595be7", - "prerequisites": [ - "lists", - "maps", - "enum" - ], - "practices": [ - "maps" - ], + "prerequisites": ["lists", "maps", "enum"], + "practices": ["maps"], "difficulty": 3, - "topics": [ - "maps" - ] + "topics": ["maps"] }, { "slug": "isogram", "name": "Isogram", "uuid": "55a20a0f-0131-4e4e-b14f-f3cb49e3cc04", - "prerequisites": [ - "strings", - "enum", - "regular-expressions" - ], - "practices": [ - "enum", - "regular-expressions" - ], + "prerequisites": ["strings", "enum", "regular-expressions"], + "practices": ["enum", "regular-expressions"], "difficulty": 3, - "topics": [ - "algorithms", - "reduce" - ] + "topics": ["algorithms", "reduce"] }, { "slug": "twelve-days", @@ -1226,17 +834,9 @@ "maps", "ranges" ], - "practices": [ - "multiple-clause-functions", - "strings", - "recursion" - ], + "practices": ["multiple-clause-functions", "strings", "recursion"], "difficulty": 3, - "topics": [ - "enumerations", - "reduce", - "string_formatting" - ] + "topics": ["enumerations", "reduce", "string_formatting"] }, { "slug": "collatz-conjecture", @@ -1248,16 +848,9 @@ "multiple-clause-functions", "guards" ], - "practices": [ - "integers", - "recursion", - "guards" - ], + "practices": ["integers", "recursion", "guards"], "difficulty": 2, - "topics": [ - "math", - "recursion" - ] + "topics": ["math", "recursion"] }, { "slug": "sublist", @@ -1272,14 +865,9 @@ "pattern-matching", "recursion" ], - "practices": [ - "lists" - ], + "practices": ["lists"], "difficulty": 2, - "topics": [ - "enumeration", - "lists" - ] + "topics": ["enumeration", "lists"] }, { "slug": "triangle", @@ -1295,15 +883,9 @@ "case", "if" ], - "practices": [ - "atoms", - "pattern-matching", - "guards" - ], + "practices": ["atoms", "pattern-matching", "guards"], "difficulty": 2, - "topics": [ - "algorithms" - ] + "topics": ["algorithms"] }, { "slug": "flatten-array", @@ -1317,16 +899,9 @@ "guards", "nil" ], - "practices": [ - "lists", - "recursion", - "nil" - ], + "practices": ["lists", "recursion", "nil"], "difficulty": 3, - "topics": [ - "lists", - "recursion" - ] + "topics": ["lists", "recursion"] }, { "slug": "matching-brackets", @@ -1345,35 +920,18 @@ "multiple-clause-functions", "binaries" ], - "practices": [ - "strings", - "recursion", - "pattern-matching" - ], + "practices": ["strings", "recursion", "pattern-matching"], "difficulty": 3, - "topics": [ - "algorithms", - "enumeration", - "reduce" - ] + "topics": ["algorithms", "enumeration", "reduce"] }, { "slug": "anagram", "name": "Anagram", "uuid": "21e70267-097e-476f-aaff-233483514802", - "prerequisites": [ - "strings", - "enum" - ], - "practices": [ - "strings", - "enum" - ], + "prerequisites": ["strings", "enum"], + "practices": ["strings", "enum"], "difficulty": 2, - "topics": [ - "enumeration", - "filter" - ] + "topics": ["enumeration", "filter"] }, { "slug": "hamming", @@ -1388,33 +946,18 @@ "enum", "recursion" ], - "practices": [ - "enum" - ], + "practices": ["enum"], "difficulty": 2, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "matrix", "name": "Matrix", "uuid": "f0df392c-8ace-4639-b555-5e61e54a854e", - "prerequisites": [ - "strings", - "enum", - "structs" - ], - "practices": [ - "strings", - "enum", - "structs" - ], + "prerequisites": ["strings", "enum", "structs"], + "practices": ["strings", "enum", "structs"], "difficulty": 3, - "topics": [ - "string_processing", - "structs" - ] + "topics": ["string_processing", "structs"] }, { "slug": "phone-number", @@ -1427,15 +970,9 @@ "pattern-matching", "binaries" ], - "practices": [ - "strings", - "regular-expressions" - ], + "practices": ["strings", "regular-expressions"], "difficulty": 3, - "topics": [ - "pattern_matching", - "string_processing" - ] + "topics": ["pattern_matching", "string_processing"] }, { "slug": "say", @@ -1455,15 +992,9 @@ "ranges", "module-attributes-as-constants" ], - "practices": [ - "guards", - "maps", - "module-attributes-as-constants" - ], + "practices": ["guards", "maps", "module-attributes-as-constants"], "difficulty": 3, - "topics": [ - "pattern_matching" - ] + "topics": ["pattern_matching"] }, { "slug": "nth-prime", @@ -1483,18 +1014,9 @@ "errors", "exceptions" ], - "practices": [ - "integers", - "recursion", - "ranges", - "errors" - ], + "practices": ["integers", "recursion", "ranges", "errors"], "difficulty": 2, - "topics": [ - "algorithms", - "math", - "recursion" - ] + "topics": ["algorithms", "math", "recursion"] }, { "slug": "binary-search", @@ -1508,16 +1030,9 @@ "guards", "cond" ], - "practices": [ - "tuples", - "recursion", - "cond" - ], + "practices": ["tuples", "recursion", "cond"], "difficulty": 3, - "topics": [ - "algorithms", - "recursion" - ] + "topics": ["algorithms", "recursion"] }, { "slug": "isbn-verifier", @@ -1532,15 +1047,9 @@ "ranges", "enum" ], - "practices": [ - "strings", - "regular-expressions", - "ranges" - ], + "practices": ["strings", "regular-expressions", "ranges"], "difficulty": 3, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "leap", @@ -1559,9 +1068,7 @@ "guards" ], "difficulty": 3, - "topics": [ - "algorithms" - ] + "topics": ["algorithms"] }, { "slug": "tournament", @@ -1579,17 +1086,9 @@ "case", "if" ], - "practices": [ - "maps", - "enum", - "pattern-matching" - ], + "practices": ["maps", "enum", "pattern-matching"], "difficulty": 4, - "topics": [ - "formatting", - "sorting", - "string_processing" - ] + "topics": ["formatting", "sorting", "string_processing"] }, { "slug": "all-your-base", @@ -1615,11 +1114,7 @@ "pattern-matching" ], "difficulty": 2, - "topics": [ - "math", - "numbers", - "translation" - ] + "topics": ["math", "numbers", "translation"] }, { "slug": "binary-search-tree", @@ -1637,16 +1132,9 @@ "recursion", "nil" ], - "practices": [ - "maps", - "recursion", - "nil" - ], + "practices": ["maps", "recursion", "nil"], "difficulty": 3, - "topics": [ - "algorithms", - "trees" - ] + "topics": ["algorithms", "trees"] }, { "slug": "grains", @@ -1663,17 +1151,9 @@ "erlang-libraries", "bit-manipulation" ], - "practices": [ - "atoms", - "tuples", - "enum", - "ranges" - ], + "practices": ["atoms", "tuples", "enum", "ranges"], "difficulty": 3, - "topics": [ - "recursion", - "reduce" - ] + "topics": ["recursion", "reduce"] }, { "slug": "meetup", @@ -1691,17 +1171,9 @@ "ranges", "dates-and-time" ], - "practices": [ - "atoms", - "pattern-matching", - "dates-and-time" - ], + "practices": ["atoms", "pattern-matching", "dates-and-time"], "difficulty": 4, - "topics": [ - "calendar", - "pattern_matching", - "time" - ] + "topics": ["calendar", "pattern_matching", "time"] }, { "slug": "simple-linked-list", @@ -1722,28 +1194,16 @@ "tail-call-recursion" ], "difficulty": 1, - "topics": [ - "recursion" - ] + "topics": ["recursion"] }, { "slug": "etl", "name": "ETL", "uuid": "b3a4c561-344a-403e-b5b3-3533d51e65f4", - "prerequisites": [ - "strings", - "maps", - "enum", - "list-comprehensions" - ], - "practices": [ - "list-comprehensions" - ], + "prerequisites": ["strings", "maps", "enum", "list-comprehensions"], + "practices": ["list-comprehensions"], "difficulty": 2, - "topics": [ - "enumeration", - "string_processing" - ] + "topics": ["enumeration", "string_processing"] }, { "slug": "binary", @@ -1761,16 +1221,9 @@ "enum", "strings" ], - "practices": [ - "recursion", - "tail-call-recursion", - "strings" - ], + "practices": ["recursion", "tail-call-recursion", "strings"], "difficulty": 3, - "topics": [ - "binary_operators", - "math" - ] + "topics": ["binary_operators", "math"] }, { "slug": "change", @@ -1787,33 +1240,18 @@ "enum", "maps" ], - "practices": [ - "integers", - "enum" - ], + "practices": ["integers", "enum"], "difficulty": 3, - "topics": [ - "enumeration", - "reduce" - ] + "topics": ["enumeration", "reduce"] }, { "slug": "transpose", "name": "Transpose", "uuid": "ce270a34-add1-422c-bb86-53b310f05e27", - "prerequisites": [ - "strings", - "enum" - ], - "practices": [ - "strings", - "enum" - ], + "prerequisites": ["strings", "enum"], + "practices": ["strings", "enum"], "difficulty": 5, - "topics": [ - "strings", - "transforming" - ] + "topics": ["strings", "transforming"] }, { "slug": "ocr-numbers", @@ -1838,10 +1276,7 @@ "enum" ], "difficulty": 6, - "topics": [ - "enumerations", - "strings" - ] + "topics": ["enumerations", "strings"] }, { "slug": "kindergarten-garden", @@ -1868,9 +1303,7 @@ "module-attributes-as-constants" ], "difficulty": 3, - "topics": [ - "string_processing" - ] + "topics": ["string_processing"] }, { "slug": "diamond", @@ -1883,17 +1316,9 @@ "recursion", "ranges" ], - "practices": [ - "charlists", - "strings", - "enum", - "ranges" - ], + "practices": ["charlists", "strings", "enum", "ranges"], "difficulty": 5, - "topics": [ - "algorithms", - "enumeration" - ] + "topics": ["algorithms", "enumeration"] }, { "slug": "luhn", @@ -1912,16 +1337,9 @@ "recursion", "enum" ], - "practices": [ - "integers", - "strings", - "enum" - ], + "practices": ["integers", "strings", "enum"], "difficulty": 5, - "topics": [ - "enumeration", - "string_processing" - ] + "topics": ["enumeration", "string_processing"] }, { "slug": "scale-generator", @@ -1942,16 +1360,9 @@ "module-attributes-as-constants", "default-arguments" ], - "practices": [ - "lists", - "enum", - "module-attributes-as-constants" - ], + "practices": ["lists", "enum", "module-attributes-as-constants"], "difficulty": 5, - "topics": [ - "enumerations", - "string_processing" - ] + "topics": ["enumerations", "string_processing"] }, { "slug": "rail-fence-cipher", @@ -1970,33 +1381,18 @@ "ranges", "streams" ], - "practices": [ - "strings", - "enum", - "ranges" - ], + "practices": ["strings", "enum", "ranges"], "difficulty": 6, - "topics": [ - "encryption", - "string_processing" - ] + "topics": ["encryption", "string_processing"] }, { "slug": "gigasecond", "name": "Gigasecond", "uuid": "287331a4-64d5-4b35-b4c1-a1171dc338e1", - "prerequisites": [ - "integers", - "dates-and-time" - ], - "practices": [ - "dates-and-time" - ], + "prerequisites": ["integers", "dates-and-time"], + "practices": ["dates-and-time"], "difficulty": 3, - "topics": [ - "calendar", - "time" - ] + "topics": ["calendar", "time"] }, { "slug": "hexadecimal", @@ -2013,17 +1409,9 @@ "recursion", "enum" ], - "practices": [ - "strings", - "charlists", - "ranges" - ], + "practices": ["strings", "charlists", "ranges"], "difficulty": 3, - "topics": [ - "math", - "numbers", - "string_processing" - ] + "topics": ["math", "numbers", "string_processing"] }, { "slug": "perfect-numbers", @@ -2040,19 +1428,9 @@ "enum", "recursion" ], - "practices": [ - "atoms", - "cond", - "pattern-matching", - "enum", - "recursion" - ], + "practices": ["atoms", "cond", "pattern-matching", "enum", "recursion"], "difficulty": 3, - "topics": [ - "enumeration", - "math", - "pattern_matching" - ] + "topics": ["enumeration", "math", "pattern_matching"] }, { "slug": "prime-factors", @@ -2074,30 +1452,16 @@ "tail-call-recursion" ], "difficulty": 3, - "topics": [ - "math", - "pattern_matching", - "recursion" - ] + "topics": ["math", "pattern_matching", "recursion"] }, { "slug": "diffie-hellman", "name": "Diffie Hellman", "uuid": "92caf2b9-3fca-401c-8daa-aaa0193e704f", - "prerequisites": [ - "ranges", - "randomness", - "erlang-libraries" - ], - "practices": [ - "ranges", - "randomness", - "erlang-libraries" - ], + "prerequisites": ["ranges", "randomness", "erlang-libraries"], + "practices": ["ranges", "randomness", "erlang-libraries"], "difficulty": 4, - "topics": [ - "math" - ] + "topics": ["math"] }, { "slug": "parallel-letter-frequency", @@ -2110,16 +1474,9 @@ "processes", "pids" ], - "practices": [ - "strings", - "regular-expressions", - "processes" - ], + "practices": ["strings", "regular-expressions", "processes"], "difficulty": 4, - "topics": [ - "concurrency", - "otp" - ] + "topics": ["concurrency", "otp"] }, { "slug": "palindrome-products", @@ -2132,57 +1489,27 @@ "list-comprehensions", "default-arguments" ], - "practices": [ - "enum", - "ranges", - "list-comprehensions" - ], + "practices": ["enum", "ranges", "list-comprehensions"], "difficulty": 5, - "topics": [ - "math", - "reduce" - ] + "topics": ["math", "reduce"] }, { "slug": "pascals-triangle", "name": "Pascals Triangle", "uuid": "b85c37c7-a76e-41fa-9ce6-abcdba2bd683", - "prerequisites": [ - "enum", - "ranges", - "recursion" - ], - "practices": [ - "enum", - "ranges", - "recursion" - ], + "prerequisites": ["enum", "ranges", "recursion"], + "practices": ["enum", "ranges", "recursion"], "difficulty": 3, - "topics": [ - "algorithms", - "enumeration", - "math" - ] + "topics": ["algorithms", "enumeration", "math"] }, { "slug": "spiral-matrix", "name": "Spiral Matrix", "uuid": "cf28d2b2-763e-404b-90b0-637263d3bba6", - "prerequisites": [ - "lists", - "enum", - "recursion" - ], - "practices": [ - "lists", - "enum", - "recursion" - ], + "prerequisites": ["lists", "enum", "recursion"], + "practices": ["lists", "enum", "recursion"], "difficulty": 4, - "topics": [ - "lists", - "transforming" - ] + "topics": ["lists", "transforming"] }, { "slug": "custom-set", @@ -2200,33 +1527,18 @@ "maps", "enum" ], - "practices": [ - "maps" - ], + "practices": ["maps"], "difficulty": 5, - "topics": [ - "collections", - "enumeration" - ] + "topics": ["collections", "enumeration"] }, { "slug": "saddle-points", "name": "Saddle Points", "uuid": "8e5c050a-ff42-4a23-ba32-84595b7476f4", - "prerequisites": [ - "lists", - "strings", - "enum" - ], - "practices": [ - "enum" - ], + "prerequisites": ["lists", "strings", "enum"], + "practices": ["enum"], "difficulty": 5, - "topics": [ - "enumeration", - "matricies", - "string_processing" - ] + "topics": ["enumeration", "matricies", "string_processing"] }, { "slug": "connect", @@ -2243,14 +1555,9 @@ "strings", "enum" ], - "practices": [ - "enum" - ], + "practices": ["enum"], "difficulty": 7, - "topics": [ - "reduce", - "string_processing" - ] + "topics": ["reduce", "string_processing"] }, { "slug": "minesweeper", @@ -2270,15 +1577,9 @@ "maps", "ranges" ], - "practices": [ - "enum" - ], + "practices": ["enum"], "difficulty": 7, - "topics": [ - "algorithms", - "enumeration", - "reduce" - ] + "topics": ["algorithms", "enumeration", "reduce"] }, { "slug": "queen-attack", @@ -2299,36 +1600,18 @@ "exceptions", "structs" ], - "practices": [ - "structs", - "pattern-matching", - "errors", - "exceptions" - ], + "practices": ["structs", "pattern-matching", "errors", "exceptions"], "difficulty": 7, - "topics": [ - "algorithms", - "structs" - ] + "topics": ["algorithms", "structs"] }, { "slug": "armstrong-numbers", "name": "Armstrong Numbers", "uuid": "8f40f0f6-95e6-4a4c-a576-3d677ffbbd9f", - "prerequisites": [ - "integers", - "lists", - "enum", - "erlang-libraries" - ], - "practices": [ - "integers" - ], + "prerequisites": ["integers", "lists", "enum", "erlang-libraries"], + "practices": ["integers"], "difficulty": 2, - "topics": [ - "algorithms", - "math" - ] + "topics": ["algorithms", "math"] }, { "slug": "simple-cipher", @@ -2345,35 +1628,18 @@ "enum", "streams" ], - "practices": [ - "strings", - "charlists" - ], + "practices": ["strings", "charlists"], "difficulty": 3, - "topics": [ - "encryption", - "string_processing" - ] + "topics": ["encryption", "string_processing"] }, { "slug": "allergies", "name": "Allergies", "uuid": "9a1b599c-3175-4166-9b53-491a2f565db6", - "prerequisites": [ - "lists", - "maps", - "enum", - "bit-manipulation" - ], - "practices": [ - "bit-manipulation", - "enum" - ], + "prerequisites": ["lists", "maps", "enum", "bit-manipulation"], + "practices": ["bit-manipulation", "enum"], "difficulty": 4, - "topics": [ - "binary_operators", - "enumeration" - ] + "topics": ["binary_operators", "enumeration"] }, { "slug": "crypto-square", @@ -2389,15 +1655,9 @@ "enum", "erlang-libraries" ], - "practices": [ - "strings", - "enum" - ], + "practices": ["strings", "enum"], "difficulty": 4, - "topics": [ - "algorithms", - "encryption" - ] + "topics": ["algorithms", "encryption"] }, { "slug": "largest-series-product", @@ -2414,16 +1674,9 @@ "errors", "exceptions" ], - "practices": [ - "integers", - "enum" - ], + "practices": ["integers", "enum"], "difficulty": 4, - "topics": [ - "enumeration", - "math", - "recursion" - ] + "topics": ["enumeration", "math", "recursion"] }, { "slug": "clock", @@ -2441,19 +1694,9 @@ "structs", "protocols" ], - "practices": [ - "integers", - "structs", - "protocols" - ], + "practices": ["integers", "structs", "protocols"], "difficulty": 5, - "topics": [ - "integers", - "logic", - "protocols", - "structs", - "transforming" - ] + "topics": ["integers", "logic", "protocols", "structs", "transforming"] }, { "slug": "sieve", @@ -2469,15 +1712,9 @@ "enum", "recursion" ], - "practices": [ - "lists", - "recursion" - ], + "practices": ["lists", "recursion"], "difficulty": 5, - "topics": [ - "enumeration", - "math" - ] + "topics": ["enumeration", "math"] }, { "slug": "poker", @@ -2497,14 +1734,9 @@ "if", "structs" ], - "practices": [ - "enum", - "pattern-matching" - ], + "practices": ["enum", "pattern-matching"], "difficulty": 7, - "topics": [ - "sorting" - ] + "topics": ["sorting"] }, { "slug": "atbash-cipher", @@ -2519,14 +1751,9 @@ "enum", "recursion" ], - "practices": [ - "strings", - "charlists" - ], + "practices": ["strings", "charlists"], "difficulty": 3, - "topics": [ - "encryption" - ] + "topics": ["encryption"] }, { "slug": "grep", @@ -2544,36 +1771,18 @@ "regular-expressions", "file" ], - "practices": [ - "case", - "strings", - "regular-expressions", - "file" - ], + "practices": ["case", "strings", "regular-expressions", "file"], "difficulty": 3, - "topics": [ - "enumerations", - "strings" - ] + "topics": ["enumerations", "strings"] }, { "slug": "difference-of-squares", "name": "Difference Of Squares", "uuid": "bb9b24da-1ee6-42fb-936f-5fc41d97ee27", - "prerequisites": [ - "integers", - "enum", - "ranges" - ], - "practices": [ - "enum", - "ranges" - ], + "prerequisites": ["integers", "enum", "ranges"], + "practices": ["enum", "ranges"], "difficulty": 4, - "topics": [ - "math", - "reduce" - ] + "topics": ["math", "reduce"] }, { "slug": "dominoes", @@ -2592,10 +1801,7 @@ "recursion", "tail-call-recursion" ], - "practices": [ - "recursion", - "tail-call-recursion" - ], + "practices": ["recursion", "tail-call-recursion"], "difficulty": 4, "topics": [ "algorithms", @@ -2622,35 +1828,18 @@ "charlists", "ranges" ], - "practices": [ - "strings", - "enum" - ], + "practices": ["strings", "enum"], "difficulty": 5, - "topics": [ - "algorithms", - "backtracking", - "strings" - ] + "topics": ["algorithms", "backtracking", "strings"] }, { "slug": "pythagorean-triplet", "name": "Pythagorean Triplet", "uuid": "087a2a3b-71e2-4473-ab2f-3be5240567b5", - "prerequisites": [ - "integers", - "ranges", - "list-comprehensions" - ], - "practices": [ - "list-comprehensions" - ], + "prerequisites": ["integers", "ranges", "list-comprehensions"], + "practices": ["list-comprehensions"], "difficulty": 5, - "topics": [ - "algorithms", - "math", - "reduce" - ] + "topics": ["algorithms", "math", "reduce"] }, { "slug": "wordy", @@ -2669,13 +1858,9 @@ "errors", "exceptions" ], - "practices": [ - "regular-expressions" - ], + "practices": ["regular-expressions"], "difficulty": 6, - "topics": [ - "parsers" - ] + "topics": ["parsers"] }, { "slug": "dot-dsl", @@ -2696,20 +1881,12 @@ "keyword-lists", "nil" ], - "practices": [ - "keyword-lists", - "structs" - ], + "practices": ["keyword-lists", "structs"], "difficulty": 8, - "topics": [ - "graphs", - "structs" - ] + "topics": ["graphs", "structs"] } ], - "foregone": [ - "robot-name" - ] + "foregone": ["robot-name"] }, "concepts": [ { From 6bd38a05fd1aae35b5e3bd367adb4a55eb0256b7 Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 14 Feb 2021 10:55:11 -0600 Subject: [PATCH 119/127] additions --- config.json | 64 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/config.json b/config.json index b87aa04f15..055a3b97e9 100644 --- a/config.json +++ b/config.json @@ -354,7 +354,7 @@ "case", "enum" ], - "practices": ["charlists"], + "practices": ["charlists", "enum"], "difficulty": 2, "topics": ["strings"] }, @@ -398,7 +398,7 @@ "uuid": "d20b49dc-cb6d-45fc-a168-78d002072c75", "prerequisites": ["booleans", "strings", "regular-expressions", "cond"], "practices": ["booleans", "strings", "cond"], - "difficulty": 2, + "difficulty": 3, "topics": ["control_flow", "string_processing"] }, { @@ -426,6 +426,7 @@ "name": "Robot Simulator", "uuid": "e5e55560-852f-4551-b4da-c9f4a3141470", "prerequisites": [ + "atoms", "multiple-clause-functions", "guards", "pattern-matching", @@ -437,7 +438,7 @@ ], "practices": ["pattern-matching", "structs"], "difficulty": 6, - "topics": ["pattern_matching", "structs"] + "topics": ["atoms", "pattern_matching", "structs"] }, { "slug": "list-ops", @@ -477,8 +478,8 @@ "slug": "bank-account", "name": "Bank Account", "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", - "prerequisites": ["if", "processes", "pids", "agent"], - "practices": ["if", "processes", "pids", "agent"], + "prerequisites": ["if", "processes", "pids", "agent", "genserver"], + "practices": ["if", "processes", "pids", "agent", "genserver"], "difficulty": 7, "topics": ["otp"] }, @@ -516,7 +517,12 @@ "case", "structs" ], - "practices": ["pattern-matching", "guards", "structs"], + "practices": [ + "pattern-matching", + "guards", + "structs", + "multiple-clause-functions" + ], "difficulty": 8, "topics": ["algorithms", "pattern_matching", "structs"] }, @@ -569,7 +575,7 @@ "name": "Nucleotide Count", "uuid": "7404e885-747a-46fc-be0c-c53f4b0e162f", "prerequisites": ["charlists", "maps", "enum"], - "practices": ["charlists", "enum"], + "practices": ["charlists", "enum", "maps"], "difficulty": 2, "topics": ["enumerables", "maps", "string_processing"] }, @@ -584,9 +590,10 @@ "recursion", "cond", "if", - "case" + "case", + "binaries" ], - "practices": ["strings"], + "practices": ["strings", "binaries"], "difficulty": 2, "topics": ["pattern_matching", "string_processing"] }, @@ -660,6 +667,7 @@ "module-attributes-as-constants" ], "practices": [ + "atoms", "floating-point-numbers", "module-attributes-as-constants" ], @@ -679,7 +687,7 @@ "case", "if" ], - "practices": ["lists", "recursion"], + "practices": ["lists", "recursion", "anonymous-functions"], "difficulty": 2, "topics": ["collections"] }, @@ -789,7 +797,7 @@ "recursion", "pipe-operator" ], - "practices": ["strings", "enum", "pipe-operator"], + "practices": ["strings", "enum", "pipe-operator", "maps"], "difficulty": 2, "topics": ["reduce"] }, @@ -946,7 +954,7 @@ "enum", "recursion" ], - "practices": ["enum"], + "practices": ["enum", "recursion"], "difficulty": 2, "topics": ["string_processing"] }, @@ -954,8 +962,8 @@ "slug": "matrix", "name": "Matrix", "uuid": "f0df392c-8ace-4639-b555-5e61e54a854e", - "prerequisites": ["strings", "enum", "structs"], - "practices": ["strings", "enum", "structs"], + "prerequisites": ["strings", "enum", "structs", "tuples", "maps"], + "practices": ["strings", "enum", "structs", "tuples", "maps"], "difficulty": 3, "topics": ["string_processing", "structs"] }, @@ -1241,7 +1249,7 @@ "maps" ], "practices": ["integers", "enum"], - "difficulty": 3, + "difficulty": 7, "topics": ["enumeration", "reduce"] }, { @@ -1472,9 +1480,10 @@ "regular-expressions", "enum", "processes", - "pids" + "pids", + "task" ], - "practices": ["strings", "regular-expressions", "processes"], + "practices": ["strings", "regular-expressions", "processes", "task"], "difficulty": 4, "topics": ["concurrency", "otp"] }, @@ -1535,8 +1544,8 @@ "slug": "saddle-points", "name": "Saddle Points", "uuid": "8e5c050a-ff42-4a23-ba32-84595b7476f4", - "prerequisites": ["lists", "strings", "enum"], - "practices": ["enum"], + "prerequisites": ["lists", "strings", "enum", "maps"], + "practices": ["enum", "maps"], "difficulty": 5, "topics": ["enumeration", "matricies", "string_processing"] }, @@ -1735,7 +1744,7 @@ "structs" ], "practices": ["enum", "pattern-matching"], - "difficulty": 7, + "difficulty": 8, "topics": ["sorting"] }, { @@ -1772,7 +1781,7 @@ "file" ], "practices": ["case", "strings", "regular-expressions", "file"], - "difficulty": 3, + "difficulty": 4, "topics": ["enumerations", "strings"] }, { @@ -1828,8 +1837,8 @@ "charlists", "ranges" ], - "practices": ["strings", "enum"], - "difficulty": 5, + "practices": ["strings", "enum", "pattern-matching"], + "difficulty": 7, "topics": ["algorithms", "backtracking", "strings"] }, { @@ -1858,8 +1867,8 @@ "errors", "exceptions" ], - "practices": ["regular-expressions"], - "difficulty": 6, + "practices": ["regular-expressions", "pattern-matching"], + "difficulty": 7, "topics": ["parsers"] }, { @@ -1879,9 +1888,10 @@ "errors", "exceptions", "keyword-lists", - "nil" + "nil", + "macros" ], - "practices": ["keyword-lists", "structs"], + "practices": ["keyword-lists", "structs", "macros"], "difficulty": 8, "topics": ["graphs", "structs"] } From 214e36e4381f122183e769a6058c97f64d6b5fe4 Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 14 Feb 2021 11:02:58 -0600 Subject: [PATCH 120/127] genserver removed from bank account --- config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index 055a3b97e9..d2de8c1e0a 100644 --- a/config.json +++ b/config.json @@ -478,8 +478,8 @@ "slug": "bank-account", "name": "Bank Account", "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", - "prerequisites": ["if", "processes", "pids", "agent", "genserver"], - "practices": ["if", "processes", "pids", "agent", "genserver"], + "prerequisites": ["if", "processes", "pids", "agent"], + "practices": ["if", "processes", "pids", "agent"], "difficulty": 7, "topics": ["otp"] }, From 4f91ceec505dd66e287b966b1526abe69e81c308 Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 14 Feb 2021 11:04:12 -0600 Subject: [PATCH 121/127] clean up prettier ignore --- .prettierignore | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.prettierignore b/.prettierignore index bbe4496922..426829f770 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,22 +7,5 @@ # GitHub templates .github/ISSUE_TEMPLATE/**/* -# C#-specific files -languages/csharp/exercises/**/bin/ -languages/csharp/exercises/**/obj/ - -# F#-specific files -languages/fsharp/exercises/**/bin/ -languages/fsharp/exercises/**/obj/ - -# JavaScript-specific files -languages/javascript/exercises/**/node_modules/ - -# TypeScript-specific files -languages/typescript/exercises/**/node_modules/ - -# Julia-specific files -languages/julia/exercises/**/.meta/config.json - # Language docs files -languages/*/docs/** \ No newline at end of file +docs/** \ No newline at end of file From 8fd781b0999d01a7254dd9308bc6535bb003d096 Mon Sep 17 00:00:00 2001 From: Tim Austin Date: Sun, 14 Feb 2021 11:05:14 -0600 Subject: [PATCH 122/127] prettierrc cleanup removed js-specific things --- .prettierrc | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.prettierrc b/.prettierrc index da188eb69f..d996376878 100644 --- a/.prettierrc +++ b/.prettierrc @@ -5,8 +5,6 @@ "endOfLine": "auto", "htmlWhitespaceSensitivity": "css", "insertPragma": false, - "jsxBracketSameLine": false, - "jsxSingleQuote": false, "printWidth": 80, "proseWrap": "preserve", "quoteProps": "as-needed", @@ -15,13 +13,5 @@ "tabWidth": 2, "trailingComma": "es5", "useTabs": false, - "vueIndentScriptAndStyle": false, - "overrides": [ - { - "files": "languages/javascript/**/*.{js,jsx,ts,tsx,mjs}", - "options": { - "semi": true - } - } - ] + "vueIndentScriptAndStyle": false } From 018235ba0cd75694d521ee2398b3120804427a80 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Mon, 15 Feb 2021 08:04:51 +0100 Subject: [PATCH 123/127] Update config.json Co-authored-by: Tim Austin --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index d2de8c1e0a..863948a088 100644 --- a/config.json +++ b/config.json @@ -1305,7 +1305,7 @@ "module-attributes-as-constants" ], "practices": [ - "string", + "strings", "enum", "maps", "module-attributes-as-constants" From 483c76e0870aa66bb85e8e3efd187bc1191ba444 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Mon, 15 Feb 2021 08:14:21 +0100 Subject: [PATCH 124/127] Fix "string" => "strings" --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index 863948a088..e0e369e0ab 100644 --- a/config.json +++ b/config.json @@ -1293,7 +1293,7 @@ "prerequisites": [ "tuples", "lists", - "string", + "strings", "multiple-clause-functions", "pattern-matching", "default-arguments", From cacf196d64030d1460459a1cca70e6da6d9711f6 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Mon, 15 Feb 2021 08:15:26 +0100 Subject: [PATCH 125/127] Modify script to detect typos --- prerequisites_analysis.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/prerequisites_analysis.js b/prerequisites_analysis.js index 6f56bd191f..1cf33279c2 100644 --- a/prerequisites_analysis.js +++ b/prerequisites_analysis.js @@ -30,3 +30,16 @@ conceptSlugs.forEach(concept => { console.log('\nRequired by:') console.log(config.exercises.practice.filter(x => x.prerequisites.includes(concept)).map(x => x.slug)) }) + +let usedConcepts = [] +usedConcepts = config.exercises.concept.reduce((acc, x) => [...x.prerequisites, ...acc], usedConcepts) +usedConcepts = config.exercises.practice.reduce((acc, x) => [...x.practices, ...x.prerequisites, ...acc], usedConcepts) +const conceptsThatDoNotExist = usedConcepts.filter(uniq).filter(x => !conceptSlugs.includes(x)).sort() + +if (conceptsThatDoNotExist !== []) { + console.log('\n\n============================================') + console.log('\n\nConcepts that do not exist:') + console.log(conceptsThatDoNotExist) +} + +console.log('\n') From 158531d03b8323d8a0e1d5afc34f23d91140e5bc Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Mon, 1 Mar 2021 09:07:39 +0100 Subject: [PATCH 126/127] Remove topics --- config.json | 291 ++++++++++++-------------------------- prerequisites_analysis.js | 45 ------ 2 files changed, 94 insertions(+), 242 deletions(-) delete mode 100644 prerequisites_analysis.js diff --git a/config.json b/config.json index a8c7c9bbd7..c72e312a9d 100644 --- a/config.json +++ b/config.json @@ -354,8 +354,7 @@ "uuid": "cc96d65d-1c79-40d0-8fd2-9a6665a43b01", "prerequisites": [], "practices": [], - "difficulty": 1, - "topics": ["strings"] + "difficulty": 1 }, { "slug": "rna-transcription", @@ -369,8 +368,7 @@ "enum" ], "practices": ["charlists", "enum"], - "difficulty": 2, - "topics": ["strings"] + "difficulty": 2 }, { "slug": "word-count", @@ -384,8 +382,7 @@ "pipe-operator" ], "practices": ["strings", "regular-expressions", "pipe-operator"], - "difficulty": 3, - "topics": ["lists", "maps", "reduce"] + "difficulty": 3 }, { "slug": "roman-numerals", @@ -403,8 +400,7 @@ "case" ], "practices": ["recursion"], - "difficulty": 2, - "topics": ["algorithms", "pattern_matching"] + "difficulty": 2 }, { "slug": "bob", @@ -412,8 +408,7 @@ "uuid": "d20b49dc-cb6d-45fc-a168-78d002072c75", "prerequisites": ["booleans", "strings", "regular-expressions", "cond"], "practices": ["booleans", "strings", "cond"], - "difficulty": 3, - "topics": ["control_flow", "string_processing"] + "difficulty": 3 }, { "slug": "beer-song", @@ -432,8 +427,7 @@ "default-arguments", "strings" ], - "difficulty": 3, - "topics": ["pattern_matching", "recursion"] + "difficulty": 3 }, { "slug": "robot-simulator", @@ -451,8 +445,7 @@ "default-arguments" ], "practices": ["pattern-matching", "structs"], - "difficulty": 6, - "topics": ["atoms", "pattern_matching", "structs"] + "difficulty": 6 }, { "slug": "list-ops", @@ -466,8 +459,7 @@ "pattern-matching" ], "practices": ["lists", "recursion", "tail-call-recursion"], - "difficulty": 6, - "topics": ["enumeration", "lists", "recursion"] + "difficulty": 6 }, { "slug": "markdown", @@ -485,8 +477,7 @@ "if" ], "practices": ["strings", "regular-expressions"], - "difficulty": 5, - "topics": ["refactoring"] + "difficulty": 5 }, { "slug": "bank-account", @@ -494,8 +485,7 @@ "uuid": "5d5e0f6c-f4b7-418e-88f8-4b1d0f99bfb0", "prerequisites": ["if", "processes", "pids", "agent"], "practices": ["if", "processes", "pids", "agent"], - "difficulty": 7, - "topics": ["otp"] + "difficulty": 7 }, { "slug": "zipper", @@ -512,8 +502,7 @@ "multiple-clause-functions" ], "practices": ["structs", "recursion"], - "difficulty": 8, - "topics": ["algorithms", "recursion", "structs", "trees"] + "difficulty": 8 }, { "slug": "bowling", @@ -537,8 +526,7 @@ "structs", "multiple-clause-functions" ], - "difficulty": 8, - "topics": ["algorithms", "pattern_matching", "structs"] + "difficulty": 8 }, { "slug": "forth", @@ -563,8 +551,7 @@ "dynamic-dispatch" ], "practices": ["regular-expressions", "errors", "exceptions"], - "difficulty": 10, - "topics": ["parsers"] + "difficulty": 10 }, { "slug": "resistor-color", @@ -572,8 +559,7 @@ "uuid": "12efd520-e3e5-437f-b93e-38af14aa605d", "prerequisites": ["lists", "enum"], "practices": ["enum"], - "difficulty": 1, - "topics": ["enumerables"] + "difficulty": 1 }, { "slug": "two-fer", @@ -581,8 +567,7 @@ "uuid": "e7f3280e-0bef-4fac-8a69-cbfa2e5f818a", "prerequisites": ["strings", "guards", "default-arguments"], "practices": ["strings", "guards", "default-arguments"], - "difficulty": 1, - "topics": ["strings"] + "difficulty": 1 }, { "slug": "nucleotide-count", @@ -590,8 +575,7 @@ "uuid": "7404e885-747a-46fc-be0c-c53f4b0e162f", "prerequisites": ["charlists", "maps", "enum"], "practices": ["charlists", "enum", "maps"], - "difficulty": 2, - "topics": ["enumerables", "maps", "string_processing"] + "difficulty": 2 }, { "slug": "pig-latin", @@ -608,8 +592,7 @@ "binaries" ], "practices": ["strings", "binaries"], - "difficulty": 2, - "topics": ["pattern_matching", "string_processing"] + "difficulty": 2 }, { "slug": "protein-translation", @@ -628,8 +611,7 @@ "regular-expressions" ], "practices": ["strings", "case", "pattern-matching"], - "difficulty": 2, - "topics": ["pattern_matching", "string_processing"] + "difficulty": 2 }, { "slug": "rotational-cipher", @@ -647,8 +629,7 @@ "guards" ], "practices": ["charlists", "ranges"], - "difficulty": 2, - "topics": ["string_processing"] + "difficulty": 2 }, { "slug": "secret-handshake", @@ -665,8 +646,7 @@ "bit-manipulation" ], "practices": ["bit-manipulation"], - "difficulty": 2, - "topics": ["binary_representation"] + "difficulty": 2 }, { "slug": "space-age", @@ -685,8 +665,7 @@ "floating-point-numbers", "module-attributes-as-constants" ], - "difficulty": 2, - "topics": ["pattern_matching"] + "difficulty": 2 }, { "slug": "strain", @@ -702,8 +681,7 @@ "if" ], "practices": ["lists", "recursion", "anonymous-functions"], - "difficulty": 2, - "topics": ["collections"] + "difficulty": 2 }, { "slug": "accumulate", @@ -711,8 +689,7 @@ "uuid": "e7c6a0d2-6aaf-4d55-99e2-8ffa65a5e8f0", "prerequisites": ["anonymous-functions", "lists", "recursion"], "practices": ["anonymous-functions", "lists", "recursion"], - "difficulty": 2, - "topics": ["recursion", "reduce"] + "difficulty": 2 }, { "slug": "acronym", @@ -725,8 +702,7 @@ "pipe-operator" ], "practices": ["regular-expressions", "pipe-operator"], - "difficulty": 2, - "topics": ["string_processing"] + "difficulty": 2 }, { "slug": "raindrops", @@ -742,8 +718,7 @@ "enum" ], "practices": ["enum"], - "difficulty": 2, - "topics": ["conditionals"] + "difficulty": 2 }, { "slug": "run-length-encoding", @@ -751,8 +726,7 @@ "uuid": "f4f759ea-53e1-42d6-a580-6e7b7d6a99a0", "prerequisites": ["strings", "regular-expressions", "enum", "if"], "practices": ["strings", "regular-expressions"], - "difficulty": 2, - "topics": ["algorithms", "strings"] + "difficulty": 2 }, { "slug": "series", @@ -766,8 +740,7 @@ "pipe-operator" ], "practices": ["strings", "enum", "pipe-operator"], - "difficulty": 2, - "topics": ["string_processing"] + "difficulty": 2 }, { "slug": "dnd-character", @@ -782,8 +755,7 @@ "randomness" ], "practices": ["structs", "randomness"], - "difficulty": 3, - "topics": ["random", "structs"] + "difficulty": 3 }, { "slug": "pangram", @@ -797,8 +769,7 @@ "ranges" ], "practices": ["charlists", "ranges"], - "difficulty": 2, - "topics": ["enumerations", "strings"] + "difficulty": 2 }, { "slug": "scrabble-score", @@ -812,8 +783,7 @@ "pipe-operator" ], "practices": ["strings", "enum", "pipe-operator", "maps"], - "difficulty": 2, - "topics": ["reduce"] + "difficulty": 2 }, { "slug": "sum-of-multiples", @@ -821,8 +791,7 @@ "uuid": "5b8eece1-845f-4a5a-8a2f-fe2bf66f5e57", "prerequisites": ["enum", "ranges"], "practices": ["enum", "ranges"], - "difficulty": 2, - "topics": ["algorithms", "math", "reduce"] + "difficulty": 2 }, { "slug": "grade-school", @@ -830,8 +799,7 @@ "uuid": "4e6d3ddf-b696-40dc-ba02-ed998e595be7", "prerequisites": ["lists", "maps", "enum"], "practices": ["maps"], - "difficulty": 3, - "topics": ["maps"] + "difficulty": 3 }, { "slug": "isogram", @@ -839,8 +807,7 @@ "uuid": "55a20a0f-0131-4e4e-b14f-f3cb49e3cc04", "prerequisites": ["strings", "enum", "regular-expressions"], "practices": ["enum", "regular-expressions"], - "difficulty": 3, - "topics": ["algorithms", "reduce"] + "difficulty": 3 }, { "slug": "twelve-days", @@ -857,8 +824,7 @@ "ranges" ], "practices": ["multiple-clause-functions", "strings", "recursion"], - "difficulty": 3, - "topics": ["enumerations", "reduce", "string_formatting"] + "difficulty": 3 }, { "slug": "collatz-conjecture", @@ -871,8 +837,7 @@ "guards" ], "practices": ["integers", "recursion", "guards"], - "difficulty": 2, - "topics": ["math", "recursion"] + "difficulty": 2 }, { "slug": "sublist", @@ -888,8 +853,7 @@ "recursion" ], "practices": ["lists"], - "difficulty": 2, - "topics": ["enumeration", "lists"] + "difficulty": 2 }, { "slug": "triangle", @@ -906,8 +870,7 @@ "if" ], "practices": ["atoms", "pattern-matching", "guards"], - "difficulty": 2, - "topics": ["algorithms"] + "difficulty": 2 }, { "slug": "flatten-array", @@ -922,8 +885,7 @@ "nil" ], "practices": ["lists", "recursion", "nil"], - "difficulty": 3, - "topics": ["lists", "recursion"] + "difficulty": 3 }, { "slug": "matching-brackets", @@ -943,8 +905,7 @@ "binaries" ], "practices": ["strings", "recursion", "pattern-matching"], - "difficulty": 3, - "topics": ["algorithms", "enumeration", "reduce"] + "difficulty": 3 }, { "slug": "anagram", @@ -952,8 +913,7 @@ "uuid": "21e70267-097e-476f-aaff-233483514802", "prerequisites": ["strings", "enum"], "practices": ["strings", "enum"], - "difficulty": 2, - "topics": ["enumeration", "filter"] + "difficulty": 2 }, { "slug": "hamming", @@ -969,8 +929,7 @@ "recursion" ], "practices": ["enum", "recursion"], - "difficulty": 2, - "topics": ["string_processing"] + "difficulty": 2 }, { "slug": "matrix", @@ -978,8 +937,7 @@ "uuid": "f0df392c-8ace-4639-b555-5e61e54a854e", "prerequisites": ["strings", "enum", "structs", "tuples", "maps"], "practices": ["strings", "enum", "structs", "tuples", "maps"], - "difficulty": 3, - "topics": ["string_processing", "structs"] + "difficulty": 3 }, { "slug": "phone-number", @@ -1000,11 +958,7 @@ "binaries" ], "practices": ["strings", "regular-expressions"], - "difficulty": 4, - "topics": [ - "pattern_matching", - "string_processing" - ] + "difficulty": 4 }, { "slug": "say", @@ -1025,8 +979,7 @@ "module-attributes-as-constants" ], "practices": ["guards", "maps", "module-attributes-as-constants"], - "difficulty": 3, - "topics": ["pattern_matching"] + "difficulty": 3 }, { "slug": "nth-prime", @@ -1047,8 +1000,7 @@ "exceptions" ], "practices": ["integers", "recursion", "ranges", "errors"], - "difficulty": 2, - "topics": ["algorithms", "math", "recursion"] + "difficulty": 2 }, { "slug": "binary-search", @@ -1063,8 +1015,7 @@ "cond" ], "practices": ["tuples", "recursion", "cond"], - "difficulty": 3, - "topics": ["algorithms", "recursion"] + "difficulty": 3 }, { "slug": "isbn-verifier", @@ -1080,8 +1031,7 @@ "enum" ], "practices": ["strings", "regular-expressions", "ranges"], - "difficulty": 3, - "topics": ["string_processing"] + "difficulty": 3 }, { "slug": "leap", @@ -1099,8 +1049,7 @@ "multiple-clause-functions", "guards" ], - "difficulty": 3, - "topics": ["algorithms"] + "difficulty": 3 }, { "slug": "tournament", @@ -1119,8 +1068,7 @@ "if" ], "practices": ["maps", "enum", "pattern-matching"], - "difficulty": 4, - "topics": ["formatting", "sorting", "string_processing"] + "difficulty": 4 }, { "slug": "all-your-base", @@ -1145,8 +1093,7 @@ "multiple-clause-functions", "pattern-matching" ], - "difficulty": 2, - "topics": ["math", "numbers", "translation"] + "difficulty": 2 }, { "slug": "binary-search-tree", @@ -1165,8 +1112,7 @@ "nil" ], "practices": ["maps", "recursion", "nil"], - "difficulty": 3, - "topics": ["algorithms", "trees"] + "difficulty": 3 }, { "slug": "grains", @@ -1184,8 +1130,7 @@ "bit-manipulation" ], "practices": ["atoms", "tuples", "enum", "ranges"], - "difficulty": 3, - "topics": ["recursion", "reduce"] + "difficulty": 3 }, { "slug": "meetup", @@ -1204,8 +1149,7 @@ "dates-and-time" ], "practices": ["atoms", "pattern-matching", "dates-and-time"], - "difficulty": 4, - "topics": ["calendar", "pattern_matching", "time"] + "difficulty": 4 }, { "slug": "simple-linked-list", @@ -1225,8 +1169,7 @@ "recursion", "tail-call-recursion" ], - "difficulty": 1, - "topics": ["recursion"] + "difficulty": 1 }, { "slug": "etl", @@ -1234,8 +1177,7 @@ "uuid": "b3a4c561-344a-403e-b5b3-3533d51e65f4", "prerequisites": ["strings", "maps", "enum", "list-comprehensions"], "practices": ["list-comprehensions"], - "difficulty": 2, - "topics": ["enumeration", "string_processing"] + "difficulty": 2 }, { "slug": "binary", @@ -1254,8 +1196,7 @@ "strings" ], "practices": ["recursion", "tail-call-recursion", "strings"], - "difficulty": 3, - "topics": ["binary_operators", "math"], + "difficulty": 3 "status": "deprecated" }, { @@ -1274,8 +1215,7 @@ "maps" ], "practices": ["integers", "enum"], - "difficulty": 7, - "topics": ["enumeration", "reduce"] + "difficulty": 7 }, { "slug": "transpose", @@ -1283,8 +1223,7 @@ "uuid": "ce270a34-add1-422c-bb86-53b310f05e27", "prerequisites": ["strings", "enum"], "practices": ["strings", "enum"], - "difficulty": 5, - "topics": ["strings", "transforming"] + "difficulty": 5 }, { "slug": "ocr-numbers", @@ -1308,8 +1247,7 @@ "pattern-matching", "enum" ], - "difficulty": 6, - "topics": ["enumerations", "strings"] + "difficulty": 6 }, { "slug": "kindergarten-garden", @@ -1335,8 +1273,7 @@ "maps", "module-attributes-as-constants" ], - "difficulty": 3, - "topics": ["string_processing"] + "difficulty": 3 }, { "slug": "diamond", @@ -1350,8 +1287,7 @@ "ranges" ], "practices": ["charlists", "strings", "enum", "ranges"], - "difficulty": 5, - "topics": ["algorithms", "enumeration"] + "difficulty": 5 }, { "slug": "luhn", @@ -1371,8 +1307,7 @@ "enum" ], "practices": ["integers", "strings", "enum"], - "difficulty": 5, - "topics": ["enumeration", "string_processing"] + "difficulty": 5 }, { "slug": "scale-generator", @@ -1394,8 +1329,7 @@ "default-arguments" ], "practices": ["lists", "enum", "module-attributes-as-constants"], - "difficulty": 5, - "topics": ["enumerations", "string_processing"] + "difficulty": 5 }, { "slug": "rail-fence-cipher", @@ -1415,8 +1349,7 @@ "streams" ], "practices": ["strings", "enum", "ranges"], - "difficulty": 6, - "topics": ["encryption", "string_processing"] + "difficulty": 6 }, { "slug": "gigasecond", @@ -1424,8 +1357,7 @@ "uuid": "287331a4-64d5-4b35-b4c1-a1171dc338e1", "prerequisites": ["integers", "dates-and-time"], "practices": ["dates-and-time"], - "difficulty": 3, - "topics": ["calendar", "time"] + "difficulty": 3 }, { "slug": "hexadecimal", @@ -1443,8 +1375,7 @@ "enum" ], "practices": ["strings", "charlists", "ranges"], - "difficulty": 3, - "topics": ["math", "numbers", "string_processing"], + "difficulty": 3 "status": "deprecated" }, { @@ -1463,8 +1394,7 @@ "recursion" ], "practices": ["atoms", "cond", "pattern-matching", "enum", "recursion"], - "difficulty": 3, - "topics": ["enumeration", "math", "pattern_matching"] + "difficulty": 3 }, { "slug": "prime-factors", @@ -1485,8 +1415,7 @@ "recursion", "tail-call-recursion" ], - "difficulty": 3, - "topics": ["math", "pattern_matching", "recursion"] + "difficulty": 3 }, { "slug": "diffie-hellman", @@ -1494,8 +1423,7 @@ "uuid": "92caf2b9-3fca-401c-8daa-aaa0193e704f", "prerequisites": ["ranges", "randomness", "erlang-libraries"], "practices": ["ranges", "randomness", "erlang-libraries"], - "difficulty": 4, - "topics": ["math"] + "difficulty": 4 }, { "slug": "parallel-letter-frequency", @@ -1510,8 +1438,7 @@ "task" ], "practices": ["strings", "regular-expressions", "processes", "task"], - "difficulty": 4, - "topics": ["concurrency", "otp"] + "difficulty": 4 }, { "slug": "palindrome-products", @@ -1527,8 +1454,7 @@ "exceptions" ], "practices": ["enum", "ranges", "list-comprehensions"], - "difficulty": 5, - "topics": ["math", "reduce"] + "difficulty": 5 }, { "slug": "pascals-triangle", @@ -1536,8 +1462,7 @@ "uuid": "b85c37c7-a76e-41fa-9ce6-abcdba2bd683", "prerequisites": ["enum", "ranges", "recursion"], "practices": ["enum", "ranges", "recursion"], - "difficulty": 3, - "topics": ["algorithms", "enumeration", "math"] + "difficulty": 3 }, { "slug": "spiral-matrix", @@ -1545,8 +1470,7 @@ "uuid": "cf28d2b2-763e-404b-90b0-637263d3bba6", "prerequisites": ["lists", "enum", "recursion"], "practices": ["lists", "enum", "recursion"], - "difficulty": 4, - "topics": ["lists", "transforming"] + "difficulty": 4 }, { "slug": "custom-set", @@ -1565,8 +1489,7 @@ "enum" ], "practices": ["maps"], - "difficulty": 5, - "topics": ["collections", "enumeration"] + "difficulty": 5 }, { "slug": "saddle-points", @@ -1574,8 +1497,7 @@ "uuid": "8e5c050a-ff42-4a23-ba32-84595b7476f4", "prerequisites": ["lists", "strings", "enum", "maps"], "practices": ["enum", "maps"], - "difficulty": 5, - "topics": ["enumeration", "matricies", "string_processing"] + "difficulty": 5 }, { "slug": "connect", @@ -1593,8 +1515,7 @@ "enum" ], "practices": ["enum"], - "difficulty": 7, - "topics": ["reduce", "string_processing"] + "difficulty": 7 }, { "slug": "minesweeper", @@ -1615,8 +1536,7 @@ "ranges" ], "practices": ["enum"], - "difficulty": 7, - "topics": ["algorithms", "enumeration", "reduce"] + "difficulty": 7 }, { "slug": "queen-attack", @@ -1638,8 +1558,7 @@ "structs" ], "practices": ["structs", "pattern-matching", "errors", "exceptions"], - "difficulty": 7, - "topics": ["algorithms", "structs"] + "difficulty": 7 }, { "slug": "armstrong-numbers", @@ -1647,8 +1566,7 @@ "uuid": "8f40f0f6-95e6-4a4c-a576-3d677ffbbd9f", "prerequisites": ["integers", "lists", "enum", "erlang-libraries"], "practices": ["integers"], - "difficulty": 2, - "topics": ["algorithms", "math"] + "difficulty": 2 }, { "slug": "simple-cipher", @@ -1668,8 +1586,7 @@ "erlang-libraries" ], "practices": ["strings", "charlists", "randomness"], - "difficulty": 3, - "topics": ["encryption", "string_processing"] + "difficulty": 3 }, { "slug": "allergies", @@ -1677,8 +1594,7 @@ "uuid": "9a1b599c-3175-4166-9b53-491a2f565db6", "prerequisites": ["lists", "maps", "enum", "bit-manipulation"], "practices": ["bit-manipulation", "enum"], - "difficulty": 4, - "topics": ["binary_operators", "enumeration"] + "difficulty": 4 }, { "slug": "crypto-square", @@ -1695,8 +1611,7 @@ "erlang-libraries" ], "practices": ["strings", "enum"], - "difficulty": 4, - "topics": ["algorithms", "encryption"] + "difficulty": 4 }, { "slug": "largest-series-product", @@ -1714,8 +1629,7 @@ "exceptions" ], "practices": ["integers", "enum"], - "difficulty": 4, - "topics": ["enumeration", "math", "recursion"] + "difficulty": 4 }, { "slug": "clock", @@ -1734,8 +1648,7 @@ "protocols" ], "practices": ["integers", "structs", "protocols"], - "difficulty": 5, - "topics": ["integers", "logic", "protocols", "structs", "transforming"] + "difficulty": 5 }, { "slug": "sieve", @@ -1752,8 +1665,7 @@ "recursion" ], "practices": ["lists", "recursion"], - "difficulty": 5, - "topics": ["enumeration", "math"] + "difficulty": 5 }, { "slug": "poker", @@ -1774,8 +1686,7 @@ "structs" ], "practices": ["enum", "pattern-matching"], - "difficulty": 8, - "topics": ["sorting"] + "difficulty": 8 }, { "slug": "atbash-cipher", @@ -1791,8 +1702,7 @@ "recursion" ], "practices": ["strings", "charlists"], - "difficulty": 3, - "topics": ["encryption"] + "difficulty": 3 }, { "slug": "grep", @@ -1811,8 +1721,7 @@ "file" ], "practices": ["case", "strings", "regular-expressions", "file"], - "difficulty": 4, - "topics": ["enumerations", "strings"] + "difficulty": 4 }, { "slug": "difference-of-squares", @@ -1820,8 +1729,7 @@ "uuid": "bb9b24da-1ee6-42fb-936f-5fc41d97ee27", "prerequisites": ["integers", "enum", "ranges"], "practices": ["enum", "ranges"], - "difficulty": 4, - "topics": ["math", "reduce"] + "difficulty": 4 }, { "slug": "dominoes", @@ -1841,14 +1749,7 @@ "tail-call-recursion" ], "practices": ["recursion", "tail-call-recursion"], - "difficulty": 4, - "topics": [ - "algorithms", - "enumerations", - "recursion", - "sorting", - "trees" - ] + "difficulty": 4 }, { "slug": "alphametics", @@ -1868,8 +1769,7 @@ "ranges" ], "practices": ["strings", "enum", "pattern-matching"], - "difficulty": 7, - "topics": ["algorithms", "backtracking", "strings"] + "difficulty": 7 }, { "slug": "pythagorean-triplet", @@ -1877,8 +1777,7 @@ "uuid": "087a2a3b-71e2-4473-ab2f-3be5240567b5", "prerequisites": ["integers", "ranges", "list-comprehensions", "task"], "practices": ["list-comprehensions", "task"], - "difficulty": 5, - "topics": ["algorithms", "math", "reduce"] + "difficulty": 5 }, { "slug": "wordy", @@ -1898,8 +1797,7 @@ "exceptions" ], "practices": ["regular-expressions", "pattern-matching"], - "difficulty": 7, - "topics": ["parsers"] + "difficulty": 7 }, { "slug": "dot-dsl", @@ -1922,8 +1820,7 @@ "macros" ], "practices": ["keyword-lists", "structs", "macros"], - "difficulty": 8, - "topics": ["graphs", "structs"] + "difficulty": 8 } ], "foregone": ["robot-name"] diff --git a/prerequisites_analysis.js b/prerequisites_analysis.js deleted file mode 100644 index 1cf33279c2..0000000000 --- a/prerequisites_analysis.js +++ /dev/null @@ -1,45 +0,0 @@ -// TODO: delete me, this is a throw-away script -const fs = require('fs') -const config = JSON.parse(fs.readFileSync('config.json')); -const conceptSlugs = config.concepts.map(x => x.slug) - -function uniq(value, index, self) { - return self.indexOf(value) === index; -} - -const conceptsThatArePracticed = config.exercises.practice.reduce((acc, x) => [...x.practices, ...acc], []).filter(uniq) -const conceptsThatArePrereq = config.exercises.practice.reduce((acc, x) => [...x.prerequisites, ...acc], []).filter(uniq) - -const conceptsThatAreNotPracticed = conceptSlugs.filter(x => !conceptsThatArePracticed.includes(x)) -const conceptsThatAreNotPrereq = conceptSlugs.filter(x => !conceptsThatArePrereq.includes(x)) - -console.log('Concepts that are not practiced by any exercise:') -console.log(conceptsThatAreNotPracticed) - -console.log('\n\nConcepts that are not required by any exercise:') -console.log(conceptsThatAreNotPrereq) - -console.log('\n\n============================================') - -console.log('\n\nConcepts and their practice exercises:') - -conceptSlugs.forEach(concept => { - console.log('\n~*~*~*~ ' + concept + ' ~*~*~*~') - console.log('\nPracticed by:') - console.log(config.exercises.practice.filter(x => x.practices.includes(concept)).map(x => x.slug)) - console.log('\nRequired by:') - console.log(config.exercises.practice.filter(x => x.prerequisites.includes(concept)).map(x => x.slug)) -}) - -let usedConcepts = [] -usedConcepts = config.exercises.concept.reduce((acc, x) => [...x.prerequisites, ...acc], usedConcepts) -usedConcepts = config.exercises.practice.reduce((acc, x) => [...x.practices, ...x.prerequisites, ...acc], usedConcepts) -const conceptsThatDoNotExist = usedConcepts.filter(uniq).filter(x => !conceptSlugs.includes(x)).sort() - -if (conceptsThatDoNotExist !== []) { - console.log('\n\n============================================') - console.log('\n\nConcepts that do not exist:') - console.log(conceptsThatDoNotExist) -} - -console.log('\n') From 090eb727df555ef333cc70a5fbebc28cef14f420 Mon Sep 17 00:00:00 2001 From: Angelika Tyborska Date: Mon, 1 Mar 2021 09:13:55 +0100 Subject: [PATCH 127/127] Fix syntax errors --- config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index c72e312a9d..c1af08b2ee 100644 --- a/config.json +++ b/config.json @@ -1196,7 +1196,7 @@ "strings" ], "practices": ["recursion", "tail-call-recursion", "strings"], - "difficulty": 3 + "difficulty": 3, "status": "deprecated" }, { @@ -1375,7 +1375,7 @@ "enum" ], "practices": ["strings", "charlists", "ranges"], - "difficulty": 3 + "difficulty": 3, "status": "deprecated" }, {