2017-02-01 28 views
2

比方說,我有以下數據類型在SML中,是否可以爲模式定義別名?

datatype mytype = Foo | Bar | Baz 

,並希望寫像下面

fun myfun ((Foo|Bar), (Foo|Bar)) = something 
| myfun (Baz, _) = somethingelse 
| ... 

的功能有沒有一種方法來創建模式Foo|Bar一個別名,這樣我可以寫它出來一次,避免重複自己?

+0

您可以設計一個非常輕量級的預處理器,它允許您在編譯之前使用簡單的縮寫代替它們的值。 –

回答

2

答案很簡單,「不」,很不幸。 「抽象模式」或「視圖」的概念已經被多次提出,但這是一個棘手的空間,沒有任何提案能夠完全滿足(也適用於Ocaml或Haskell等其他語言)。

相關問題