On 09/07/14 00:21, bearophile wrote:
9. Built-in tuples usable in all the most important situations (with a
syntax that doesn't kill possible future improvements of the switch
statement to perform basic pattern matching on structs that have an
optional method named "unapply").
I think it would be possible to implement pattern matching in library
code. Something like this:
match!(value,
(int t) => ifInt(),
(char t) => ifChar(),
() => noOtherMatch()
);
Destructing a type could look something like this:
match(value,
(type!(Foo), int a, int b) => doSomething(), // match if value is
of type Foo and extract it
(int a, int b) => doSomething() // match anything that can be
destructed to two ints
);
The syntax is not so pretty but I think it would be possible.
--
/Jacob Carlborg