• 參數化

    編輯
    本詞條由“匿名用戶” 建檔。

    什么是參數化

    編輯

    編程語言理論中,參數化是參數化多態函數所享有的一種抽象的統一性屬性,它抓住了一個多態函數的所有實例都以同樣的方式行事的直覺。

    參數化的想法

    編輯

    考慮這個例子,基于一個集合X和從X到自身的函數的類型T(X)=[X→X]。由twiceX(f)=f°f所給出的高階函數twiceX:T(X)→T(X),從直覺上講是獨立于集合X的。所有這樣的函數twiceX的家族,以集合X為參數,被稱為參數多態函數。我們簡單地把這些函數的整個家族寫成兩次,并把它的類型寫成X.T(X)→T(X)。各個函數twiceX被稱為多態函數的組件或實例。請注意,所有組件函數兩次X的行為方式是相同的,因為它們是由同一規則給出的。從每個T(X)→T(X)中挑選一個任意的函數而得到的其他函數族不會有這樣的統一性。它們被稱為特設的多態函數。

    虛函數多態機制

    參數性是兩次這樣的均勻作用的族所享有的抽象屬性,它將它們與特設族區分開來。有了對參數性的充分形式化,就有可能證明類型為參數多態的函數fn,即n的多態教會數字。相比之下,所有特設家族的集合將大得無法成為一個集合。

    參數化的歷史

    編輯

    參數性定理最初是由JohnC.Reynolds提出的,他稱之為抽象性定理。在他的論文Theoremsforfree!中,PhilipWadler描述了參數化的一個應用,即根據類型推導出關于參數化多態函數的定理。

    編程語言的實現

    編輯

    參數性是在Haskell編程語言的編譯器中實現許多程序轉換的基礎。由于Haskell的非嚴格語義,這些轉換傳統上被認為在Haskell中是正確的。盡管是一種懶惰的編程語言,Haskell確實支持某些原始操作--比如操作符seq--能夠實現所謂的選擇性嚴格,允許程序員強制評估某些表達式。在他們的論文《seq存在下的自由定理》中,PatriciaJohann和JanisVoigtlaender表明,由于這些操作的存在,一般的參數化定理對Haskell程序不成立;因此,這些轉換一般來說是不健全的。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/170778/

    (1)
    詞條目錄
    1. 什么是參數化
    2. 參數化的想法
    3. 參數化的歷史
    4. 編程語言的實現

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久