25 lines
476 B
Plaintext
25 lines
476 B
Plaintext
!import "Base.tri" !Local
|
|
!import "List.tri" List
|
|
|
|
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 (List.map (sublist :
|
|
pair (List.head sublist) (List.head (List.tail sublist)))
|
|
patterns))
|
|
|
|
otherwise = const (t t)
|