# z-pattern-matching/z

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/z-pattern-matching-z).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,715 stars · 48 forks · JavaScript · Apache-2.0

## Links

- GitHub: https://github.com/z-pattern-matching/z
- Homepage: https://z-pattern-matching.github.io/
- awesome-repositories: https://awesome-repositories.com/repository/z-pattern-matching-z.md

## Topics

`functional-programming` `immutability` `pattern-matching`

## Description

Z is a pattern matching library for JavaScript that evaluates variables against structural shapes, data types, and literal values to branch program execution conditionally. It functions as a functional programming utility designed to deconstruct arrays and objects into parts during conditional evaluation.

The library transforms human-friendly pattern matching syntax into optimized nested conditional statements during compilation or initialization phases, evaluating complex structural conditions and returning matching branch results directly as standard expression values. It inspects runtime data shapes, types, and literal values dynamically to ensure safe type narrowing across matched branches, and evaluates target objects against structural templates to extract inner values and execute corresponding handler functions. Additionally, it splits variable-length sequences into discrete head elements and remaining tail arrays to process collections recursively.

## Tags

### Software Engineering & Architecture

- [JavaScript Libraries](https://awesome-repositories.com/f/software-engineering-architecture/pattern-matching-libraries/javascript-libraries.md) — Provides a JavaScript pattern matching library for evaluating variables against structural shapes, types, and literal values to branch program execution.
- [Branch Matching Functions](https://awesome-repositories.com/f/software-engineering-architecture/failure-handling-policies/success-to-failure-conversion/branch-matching-functions.md) — Evaluating target values against specific structural templates and returning matching branch results directly as standard expression values.
- [Structural Guards](https://awesome-repositories.com/f/software-engineering-architecture/runtime-type-guards/structural-guards.md) — Inspects runtime data shapes, types, and literal values dynamically to ensure safe type narrowing across matched branches.

### Programming Languages & Runtimes

- [Pattern Matching Deconstruction](https://awesome-repositories.com/f/programming-languages-runtimes/complex-data-structure-support/pattern-matching-deconstruction.md) — Provides a functional programming utility that deconstructs arrays and objects into parts during conditional evaluation.
- [Object and Array Destructuring](https://awesome-repositories.com/f/programming-languages-runtimes/object-and-array-destructuring.md) — Splitting arrays into individual leading elements and remaining tail segments during conditional evaluation to process collections recursively.
- [Expression-Oriented Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/expression-oriented-evaluation.md) — Evaluates complex structural conditions and returns matching branch results directly as standard expression values.
- [Pattern Syntax Transformers](https://awesome-repositories.com/f/programming-languages-runtimes/pattern-syntax-transformers.md) — Transforms human-friendly pattern matching syntax into optimized nested conditional statements during compilation or initialization phases.
- [Data Shape Inspections](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-shape-inspections.md) — Execute conditional logic by inspecting the shape, data types, and specific literal values of target variables. ([source](https://github.com/z-pattern-matching/z/blob/master/README.md))
- [Array Structure Matching](https://awesome-repositories.com/f/programming-languages-runtimes/structural-pattern-matching/array-structure-matching.md) — Evaluate variables against literal values, structural shapes, arrays, types, and class instances to branch program execution. ([source](https://github.com/z-pattern-matching/z#readme))
- [Object Structure Matching](https://awesome-repositories.com/f/programming-languages-runtimes/structural-pattern-matching/object-structure-matching.md) — Evaluates target objects against structural templates to extract inner values and execute corresponding handler functions conditionally.
- [Structured Binding Decompositions](https://awesome-repositories.com/f/programming-languages-runtimes/variable-assignments/tuple-unpacking-swaps/structured-binding-decompositions.md) — Splitting complex nested data structures and variable-length arrays into parts to extract values and run corresponding handlers.

### Part of an Awesome List

- [Conditional Execution Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/design-patterns-and-architecture/javascript-implementations/pattern-matching-implementations/conditional-execution-utilities.md) — Writing conditional logic that inspects object shapes, data types, and literal values to branch program execution cleanly.

### Data & Databases

- [Head-Tail](https://awesome-repositories.com/f/data-databases/contiguous-fixed-arrays/fixed-length-array-pattern-matching/slice-destructuring/head-tail.md) — Splits variable-length sequences into discrete head elements and remaining tail arrays to process collections recursively.
- [Template Inspections](https://awesome-repositories.com/f/data-databases/structured-data-extraction/template-inspections.md) — Evaluating complex nested data structures against structural templates to extract values and run corresponding handler functions.
