[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlaplus] Record: test for field



Assuming you have a constant null that you'd like to return as a default value, you can define an operator such as

AccessField(r,f) ==
  IF f \in DOMAIN r THEN r[f] ELSE null

and then write AccessField(r, "A") instead of r["A"]. Remember that records are functions.

Regards,
Stephan

> On 29 Jan 2019, at 07:59, Philipp Frank <phil....@xxxxxx> wrote:
> 
> Given a record
> 
>    r ==  [C |-> "B"]
> 
> how can I use a "default" / fallback value for non-existing keys?
> 
> Currently, using r["A"] results in a runtime error 'Attempted to apply the record[C |-> "B"] to nonexistent record field A.'
> 
> -- 
> You received this message because you are subscribed to the Google Groups "tlaplus" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@xxxxxxxxxxxxxxxx.
> To post to this group, send email to tla...@xxxxxxxxxxxxxxxx.
> Visit this group at https://groups.google.com/group/tlaplus.
> For more options, visit https://groups.google.com/d/optout.