プログラミング言語SML#解説 4.1.0版
19

19.11 フィールドアップデート式 appexp # { exprow }

appexpの値がレコードの時,そのフィールドを { exprow }で指定した値に変更して得られる新し いレコードを生成する式である. この式の型は,式appexpの型と同一である. 以下に例を示す.

# {x = 1, y = 2} # {x = 2};
val it = {x = 2, y = 2} : {x : int, y : int}

以下の例が示す通り,この式はレコードに関して多相型を持つ.

# fun incX r = r # {x = #x r + 1};
val incX = fn : [’a#{x: int}. ’a -> ’a]
# incX {x = 1, y = 2};
val it = {x = 2, y = 2} : {x : int, y : int}