[英]How i can translate the following datatype defined in Haskell to VB .net?
Haskell中定義的以下數據類型是:
type Tag = String
type Content = String
data HTML = B Tag Content | R Tag HTML
但是在VB.Net中,我無法定義遞歸結構。 而且我不知道如何定義“ |” 在Haskell中,這是某種“或” /“聯盟”。
Public MustInherit Class HTML
Public Tag as String
End Class
Public Class B
Inherits HTML
Public Content as String
End Class
Public Class R
Inherits HTML
Public HTML as HTML
End Class
這與Haskell數據類型不同。 除了可能為null
,還可以定義另一個既不是B
也不是R
Public Class TrickedYou
Inherits HTML
End Class
還有一種在.Net中表達和類型的方法,該方法將Haskell的和類型匹配到null
。 它使用泛型,並且與OO編程完全無關。 最接近的OO設計模式是訪問者,幾乎可以正確實現總和類型。 訪問者OO模式沒有正確的通用返回類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.