事例:演算 ()

VDM++ での演算 () に準拠した事例(演算子 [])を紹介します。

    m = VDM_Map({"A":1,"B":2,"C":3})
d = "C"
print ">>> %s(%s)"%(m,d)
X = m[d]
print X; assert X == 3

写像 m において、指定したキー d に対応する値を得るには、演算子 [] を利用します。このコードを実行すると、

>>> {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('C')
3

キー 'C' に対応する値は 3 になります。

    m = VDM_Map({"A":1,"B":2,"C":3})
d = "@"
print ">>> %s('%s')"%(m,d)
try:
X = m[d]
except AssertionError,name:
print name

指定したキーが定義域に含まれないなら、この演算を利用できません。このコードを実行すると、

>>> {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('@')

: {'A' |-> 1, 'C' |-> 3, 'B' |-> 2}('@')
: (>>'@'<<) in {'A', 'B', 'C'}
: m(d): d must be in the domain of m

例外を生成して、エラーメッセージが表示されます。なぜなら、指定したキー '@' が、定義域 {'A', 'B', 'C'} に含まれないからです。