{"schemaVersion":1,"contentVersion":"3.4.0","id":"intermediate.3","languages":{"javascript":{"id":"intermediate.3","title":"Match nested delimiters","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Use matching structure instead of the next identical character.</p><p><strong>Before this lesson:</strong> Choose the whole pair.</p><p>% on a bracket moves to its matching partner, including nested pairs. d% removes the pair and its contents. A character search only finds a character; it does not understand the matching nesting. Inspect the desired result before including delimiters.</p><h3>Example</h3><p>On the opening parenthesis in outer(inner(value)), % reaches the final closing parenthesis, not the inner one.</p><p>Use Reset to try again.</p>","teaches":["bracket-match"],"introduces":["%"],"constraints":[],"drills":[{"task":"Reach the matching outer closing delimiter, passing over the nested region. Finish at line 1, column 35.","hint":"Keep the text unchanged; inspect both the destination and any required outward visit.","mode":"jsx","start":"const outline = [\"first\", \"second\"];","startCursor":{"line":0,"ch":16},"paths":[{"keys":["%"],"tier":"idiomatic","technique":"bracket-match","core":["bracket-match"],"note":"% follows the matching pair, not the next closing character."}],"kind":"navigate","land":{"line":0,"ch":34},"language":"javascript","evidence":"guided","canonicalKey":"intermediate.3#0","canonicalFingerprint":"u0thfv"}]},"python":{"id":"intermediate.3","title":"Match nested delimiters","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Use matching structure instead of the next identical character.</p><p><strong>Before this lesson:</strong> Choose the whole pair.</p><p>% on a bracket moves to its matching partner, including nested pairs. d% removes the pair and its contents. A character search only finds a character; it does not understand the matching nesting. Inspect the desired result before including delimiters.</p><h3>Example</h3><p>On the opening parenthesis in outer(inner(value)), % reaches the final closing parenthesis, not the inner one.</p><p>Use Reset to try again.</p>","teaches":["bracket-match"],"introduces":["%"],"constraints":[],"drills":[{"task":"Reach the matching outer closing delimiter, passing over the nested region. Finish at line 1, column 29.","hint":"Keep the text unchanged; inspect both the destination and any required outward visit.","mode":"python","start":"outline = [\"first\", \"second\"]","startCursor":{"line":0,"ch":10},"paths":[{"keys":["%"],"tier":"idiomatic","technique":"bracket-match","core":["bracket-match"],"note":"% follows the matching pair, not the next closing character."}],"kind":"navigate","land":{"line":0,"ch":28},"language":"python","evidence":"guided","canonicalKey":"intermediate.3#0","canonicalFingerprint":"u0thfv"}]},"text":{"id":"intermediate.3","title":"Match nested delimiters","moduleName":"Boundaries and reusable text","tips":"","concept":"<p class=\"lead\">Use matching structure instead of the next identical character.</p><p><strong>Before this lesson:</strong> Choose the whole pair.</p><p>% on a bracket moves to its matching partner, including nested pairs. d% removes the pair and its contents. A character search only finds a character; it does not understand the matching nesting. Inspect the desired result before including delimiters.</p><h3>Example</h3><p>On the opening parenthesis in outer(inner(value)), % reaches the final closing parenthesis, not the inner one.</p><p>Use Reset to try again.</p>","teaches":["bracket-match"],"introduces":["%"],"constraints":[],"drills":[{"task":"Reach the matching outer closing delimiter, passing over the nested region. Finish at line 1, column 24.","hint":"Keep the text unchanged; inspect both the destination and any required outward visit.","mode":"text/plain","start":"Outline: [first, second]","startCursor":{"line":0,"ch":9},"paths":[{"keys":["%"],"tier":"idiomatic","technique":"bracket-match","core":["bracket-match"],"note":"% follows the matching pair, not the next closing character."}],"kind":"navigate","land":{"line":0,"ch":23},"language":"text","evidence":"guided","canonicalKey":"intermediate.3#0","canonicalFingerprint":"u0thfv"}]}}}