【发布时间】:2015-05-30 22:08:29
【问题描述】:
我正在尝试在标准 ML 中使用抽象数据类型。例如,我可以写一个签名队列,通过定义两个结构为队列来实现两个队列:
signature Queue = ...
structure AQueue :> Queue = ...
structure BQueue :> Queue = ...
现在我想为队列编写通用函数/值,我使用哪个队列(AQueue 或 BQueue)并不重要。例如,我想写如下:
val double1 = Queue.enqueue (1, Queue.enqueue (1, Queue.empty))
我想我应该在某处提及 Queue.queue 类型(假设它在签名 Queue 中这样命名)......我应该打开 Queue 吗?这可以做到吗?这似乎应该是 ADT 的常见情况,但我不知道在哪里阅读......我发现的只是如何定义签名/结构,而不是如何使用它们。
【问题讨论】:
标签: sml ml abstract-data-type