簡體   English   中英

Haskell中的類型構造函數和Java泛型類型有什么區別?

[英]What's the different between type constructor in Haskell and java generic type?

我正在閱讀有關Monad的一些知識,但沒有在Haskell方面的經驗,並且對類型構造器的概念感到困惑。

一個monad是一個三元組( MunitMbindM ),由類型構造函數M和一對多態函數組成。

 unitM :: a -> M a bindM :: M a -> (a -> M b) -> M b 

在Java中:

public class M<T> {
    static <T> M<T> unit(T a)
    static <T,R> M<R> bind(M<T> a, Function<T,M<R>> f)
}

我認為它們是相同的,類型構造函數就像Java中的泛型類型,對嗎? 如果沒有,有什么區別?

你聽起來沒讓我感到困惑。 這看起來像是Haskell的Monad類到Java的異常准確的翻譯。

在Haskell中,“類型”是沒有具體參數的具體類型,例如對於任何固定TIntegerM<String>M<T> 具有一個或多個剩余參數的東西(如M )就是“類型構造函數”,因為它就像類型的構造函數:必須產生一個類型實參( T的值)才能產生具體的類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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