2
我想在標準ML中使用抽象數據類型。例如,可以寫一個簽名隊列,並且通過定義兩種結構作爲隊列兩個隊列的實現:ML抽象數據類型
signature Queue = ...
structure AQueue :> Queue = ...
structure BQueue :> Queue = ...
現在,我想編寫通用功能/值隊列,它並不重要隊列我正在使用(AQueue或BQueue)。例如,我想編寫如下:
val double1 = Queue.enqueue (1, Queue.enqueue (1, Queue.empty))
我想我應該提到Queue.queue型(assumming它被命名一樣,在簽名隊列)的地方......我應該打開隊列?這可以做到嗎?這似乎應該是一個ADT的仙女常見的情況,但我不知道在哪裏讀...我發現的所有是如何定義簽名/結構,但不知道如何使用它們。