New pattern matching doc

Mark Raynsford mark at io7m.com
Sat Jan 16 12:32:40 UTC 2021


On 2021-01-15T12:02:41 -0500
Brian Goetz <brian.goetz at oracle.com> wrote:

> Maurizio had a clever idea for how to rescue this issue.
> 
> As in (not a serious syntax proposal):
> 
>      try-match (x : big-honking-pattern) {
>          // happy-path code
>      }
>      catch (MatchFailException e) { // checked exception
>          // exception captures which sub-pattern failed
>      }
> 

Hah, synchronicity! Yes, I was drafting an email with a suggestion for
something similar, although i used a __MATCH_OR_DIE expression form
that looked like a cast, and an unchecked exception.

Did I just imagine it, or was there a suggestion for something like
this in the past?:

  var Point(var x, var y) = ...

That would have a similar aspect of assertion (as it does in Haskell,
ML, etc) and would obviously need to have the same "match or die"
semantics.

I think something akin to try-match is perfectly reasonable.

-- 
Mark Raynsford | https://www.io7m.com


More information about the amber-spec-experts mailing list