Egison Programming Language
Egison is a programming language that features extensible efficient non-linear pattern matching with backtracking for non-free data types.
We can directly represent pattern matching for a wide range of data types including lists, multisets, sets, trees, graphs, and mathematical expressions.