I’m trying to declare a function that takes a list of records inside a tuple as an argument but the syntax is not as intuitive as I would have liked.
Here’s what I’m trying to do:
type Player = {id:int, privateStack:int list};
fun foo(({id, x::xs}:Player)::players, ...) = (* wrong syntax *)
(* do something *)
Pattern matching requires binding record fields to some values so you have to use explicit record syntax. Therefore,
would work.
Note that above pattern matching is not exhaustive, be aware of empty list for
playersand empty list forprivateStack: