tricu/lib/patterns.tri
2025-04-25 12:43:52 -05:00

25 lines
458 B
Plaintext

!import "base.tri" !Local
!import "list.tri" !Local
match_ = y (self value patterns :
triage
t
(_ : t)
(pattern rest :
triage
t
(_ : t)
(test result :
if (test value)
(result value)
(self value rest))
pattern)
patterns)
match = (value patterns :
match_ value (map (sublist :
pair (head sublist) (head (tail sublist)))
patterns))
otherwise = const (t t)