Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experimental implementation of Ruby's case statement or, rather, Scala's match function.  See docs in pattern.py for details.

examples:

>>> from pattern import switch, Any, Var
>>> switch('B',
...        'A', 1,
...        'B', 2,
...        'C', 3)
2
>>> switch(65,
...        Any(range(91, 100)), 'A',
...        Any(range(81, 90)), 'B',
...        Any(range(61, 80)), 'C',
...        Any(), 'F')
'C'
>>> switch(['+', 10, 20],
...        ['+', Var('a'), Var('b')], lambda a,b: a+b,
...        ['-', Var('a'), Var('b')], lambda a,b: a-b,
...        ['*', Var('a'), Var('b')], lambda a,b: a*b,
...        ['/', Var('a'), Var('b')], lambda a,b: a/b,
...        Var('a'), lambda a: a)
30


Imspired from a Scala pair-programming session with @sandayuu (Tsuyoshi Ushio) at Coderetreat Tokyo 2011.

About

pattern matching inspired by Scala's match and Ruby's case

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages