CTM的第 3.7.5 节介绍了NewName
安全抽象数据类型中数据封装的概念。它旨在以这种方式使用:
proc {NewWrapper ?Wrap ?Unwrap}
Key={NewName}
in
fun {Wrap X}
fun {$ K} if K==Key then X end end
end
fun {Unwrap W}
{W Key}
end
end
local Wrap Unwrap in
% This part uses the above definitions to implement a secure stack
{NewWrapper Wrap Unwrap}
fun {NewStack} {Wrap nil} end
fun {Push S E} {Wrap E|{Unwrap S}} end
fun {Pop S E}
case {Unwrap S} of X|S1 then E=X {Wrap S1} end
end
fun {IsEmpty S} {Unwrap S}==nil end
end
我找不到这个NewName
概念的合适的技术术语。所以我想知道:
- 这个概念在莫扎特/奥兹之外被称为什么?
- 哪种更主流的语言实现了这种机制?