From 28e7dfee44e3ac8929a8e0a01661ebbc32672849 Mon Sep 17 00:00:00 2001 From: deepshekhardas Date: Wed, 15 Jul 2026 15:28:21 +0530 Subject: [PATCH 1/2] Fix zipper instructions to accurately describe zipper data structure Updated the instructions to clarify that a zipper consists of: 1. The path/thread leading to the focused node 2. The focused subtree This resolves the misleading description that a zipper 'contains a data structure and a pointer into that data structure.' Fixes exercism/javascript#777 --- exercises/practice/zipper/.docs/instructions.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/exercises/practice/zipper/.docs/instructions.md b/exercises/practice/zipper/.docs/instructions.md index 5445db0035..fd401c27e1 100644 --- a/exercises/practice/zipper/.docs/instructions.md +++ b/exercises/practice/zipper/.docs/instructions.md @@ -2,10 +2,15 @@ Creating a zipper for a binary tree. -[Zippers][zipper] are a purely functional way of navigating within a data structure and manipulating it. -They essentially contain a data structure and a pointer into that data structure (called the focus). +[Zippers][zipper] are a purely functional way to navigate and manipulate a data structure. +A zipper is not simply a data structure with a pointer - instead, it consists of two parts: -For example given a rose tree (where each node contains a value and a list of child nodes) a zipper might support these operations: +1. **The path/thread**: The steps taken to reach the focused node (e.g., "go left from root", "go right from there") +2. **The focused subtree**: The current node and everything below it + +From these two parts, the original data structure can be fully reconstructed, and modifications can be made by building new subtrees as you reverse the path. + +For example given a binary tree, a zipper might support these operations: - `from_tree` (get a zipper out of a rose tree, the focus is on the root node) - `to_tree` (get the rose tree out of the zipper) From 1caeaa9aa2b75d592d34b212f6cd279b9ee1ee56 Mon Sep 17 00:00:00 2001 From: deepshekhardas Date: Wed, 15 Jul 2026 16:53:51 +0530 Subject: [PATCH 2/2] Add prerequisites for exercises in issue #987 Added prerequisites for: - roman-numerals: strings, loops, numbers, conditionals - square-root: numbers, arithmetic-operators - all-your-base: numbers, arrays, loops, arithmetic-operators - queen-attack: classes, numbers, conditionals - react: classes, numbers, arrays, functions - zipper: classes, recursion, trees, numbers, arrays --- config.json | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/config.json b/config.json index 6fcb8932ad..1b61535974 100644 --- a/config.json +++ b/config.json @@ -2325,7 +2325,12 @@ "name": "Roman Numerals", "uuid": "2fc4f834-a51c-42b8-a4d9-5263229e7648", "practices": [], - "prerequisites": [], + "prerequisites": [ + "strings", + "loops", + "numbers", + "conditionals" + ], "difficulty": 3, "topics": [ "conditionals", @@ -2391,7 +2396,10 @@ "name": "Square Root", "uuid": "31c7725e-def0-4dc9-88a0-e19afb9bfb06", "practices": [], - "prerequisites": [], + "prerequisites": [ + "numbers", + "arithmetic-operators" + ], "difficulty": 4, "topics": [ "bitwise_operations", @@ -2422,7 +2430,12 @@ "name": "All Your Base", "uuid": "d2d3cd13-b06c-4c24-9964-fb1554f70dd4", "practices": [], - "prerequisites": [], + "prerequisites": [ + "numbers", + "arrays", + "loops", + "arithmetic-operators" + ], "difficulty": 5, "topics": [ "conditionals", @@ -2465,7 +2478,11 @@ "name": "Queen Attack", "uuid": "007a4cd4-7324-4512-8905-ead0c78146f7", "practices": [], - "prerequisites": [], + "prerequisites": [ + "classes", + "numbers", + "conditionals" + ], "difficulty": 4, "topics": [ "conditionals", @@ -2482,7 +2499,12 @@ "name": "React", "uuid": "303c6969-9446-41aa-871a-11223a43e810", "practices": [], - "prerequisites": [], + "prerequisites": [ + "classes", + "numbers", + "arrays", + "functions" + ], "difficulty": 8, "topics": [ "algorithms", @@ -2495,7 +2517,13 @@ "name": "Zipper", "uuid": "fd1575f3-3087-4cfa-8a26-168fba6d0606", "practices": [], - "prerequisites": [], + "prerequisites": [ + "classes", + "recursion", + "trees", + "numbers", + "arrays" + ], "difficulty": 8, "topics": [ "recursion",