case, patterns

Filip Konvička filip.konvicka at logis.cz
Thu Sep 13 17:02:05 CEST 2007


>> Which brings me to a more constructive comment:
>
> which is fine, thanks, though does not scale up to patterns such as 
> a(F1:v F2:v ...), since v cannot be the feature of two fields, as it 
> would have to be in the inversed record.
>
True, and in addition to that, the values must be atoms / ints.

You can probably also try other "inversing" tricks, something like

case {ScanRecordForValues R [v1 v2 v3 v4]}
of r(1:[F1 F2] 2:[F3] 3:F4|F5|F6|_ 4:nil) then ....
end

or even

case {ScanRecordForValues_Labelled R spec(l1:v1 l2:v2 l3:v3 l4:v4)}
of r(l1:[F1 F2] l2:[F3] l3:F4|F5|F6|_ l4:nil) then ....
end

Cheers,
Filip



More information about the mozart-users mailing list