2

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概念的合适的技术术语。所以我想知道:

  1. 这个概念在莫扎特/奥兹之外被称为什么?
  2. 哪种更主流的语言实现了这种机制?
4

0 回答 0