Skip to content

magistere/Match.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Pattern Matching for Julia

Scala has some of the most advanced pattern matching machinery. This package is an attempt to mimic those capabilities in Julia. Features include:

  • Matching against almost any data type with a first-match policy
  • Deep matching within data types and matrices
  • Variable binding within matches

For alternatives to Match, check out the following modules

  • toivoh's PatternDispatch.jl for a more Julia-like function dispatch on patterns.

  • Zach Allaun's Match.jl which is a similar, but (at this writing) less complete module for pattern matching.

    Note that Zach's Match.jl is also not listed as an available package for Julia. (Zach kindly offered to let this package use the same name--thanks!)

Installation

Use the Julia package manager. Within Julia, do:

Pkg.add("Match")

Usage

The package provides one macro, @match, which can be used as:

using Match

@match item begin
    pattern1              => result1
    pattern2, if cond end => result2
    pattern3 || pattern4  => result3
    _                     => default_result
end

It is possible to supply variables inside pattern, which will be bound to corresponding values.

See the documentation at ReadTheDocs for examples of this and other features.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 78.5%
  • Python 21.5%