演算 dom/rng を実現する

VDM++ での演算 dom/rng に準拠するように(モジュール VDM_Map で)関数 dom/rng を実現します。

def dom(m):
"""
dom m
; map A to B -> set of A
;
; Domain
; yields the domain (the set of keys) of m.
"""
return VDM_Set(m.dict.keys())

関数 dom は、写像 m のキー集合を生成して、これをリターン値とします。


関連記事Python の組み込み型 dict には、次のメソッドが規定されています。
a.keys()
変数 a が dict 型の値を束縛するとき、そのキー要素をもとにした、list 型の値が得られます。□

def rng(m):
"""
rng m
; map A to B -> set of B
;
; Range
; yields the range (the set of information values) of
; m.
"""
return VDM_Set(m.dict.values())

関数 rng は、写像 m の値集合を生成して、これをリターン値とします。


関連記事Python の組み込み型 dict には、次のメソッドが規定されています。
a.values()
変数 a が dict 型の値を束縛するとき、その値要素をもとにした、list 型の値が得られます。□


《ひよ子のきもち♪2008/08/23》