簡體   English   中英

我如何將Haskell中定義的以下數據類型轉換為VB .net?

[英]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中,這是某種“或” /“聯盟”。

執行此操作標准OO方法

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM