OCaml hat ein explizites syntaktisches Konstrukt (siehe Parsetree.pattern_desc
, constructor Ppat_record
), um zwischen "offenen" und "geschlossenen" Aufzeichnungsmustern zu unterscheiden.Was bedeutet das offene Aufzeichnungsmuster?
Dies scheint keinerlei Einfluss auf die Musteranpassung zu haben:
utop # type r = {repr:int; foo:int} ;;
type r = { repr : int; foo : int; }
utop # let f = function {repr} -> repr;;
val f : r -> int = <fun>
utop # let g = function {repr;_} -> repr;;
val g : r -> int = <fun>
Was ist/war ihr Zweck? Ist das eine Art SML-Relikt?