• 函數類型

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

    函數類型

    編輯

    計算機科學和數理邏輯中,函數類型(或箭頭類型或指數)是指一個函數已經或可以被分配到的變量或參數的類型,或者是一個高階函數獲取或返回函數的參數或結果類型。一個函數的類型取決于參數的類型和函數的結果類型(它,或者更準確地說,未應用的類型構造器--→--,是一個高階類型)。在理論環境和編程語言中,函數是以咖喱形式定義的,比如簡單類型的lambda微積分,一個函數類型正好取決于兩種類型,即域A和范圍B。在這里,一個函數類型通常按照數學慣例表示為A→B,或者BA,因為在集合類別中正好存在BA(指數級數量)集合理論函數映射A到B。這種映射或函數的類別被稱為指數對象。咖喱的行為使得函數類型與乘積類型相鄰;這將在關于咖喱的文章中詳細探討。函數類型可以被認為是從屬產品類型的一個特例,在其他屬性中,它包含了多態函數的概念。

    編程語言

    編輯

    在幾種編程語言中用于函數類型的語法可以被總結出來,包括高階函數組合函數的類型簽名示例。當查看例如C#的示例類型簽名時,函數compose的類型實際上是Func<Func<A,B>,Func<B,C>,Func<A,C>>。由于C++11的std::function中的類型擦除,對于高階函數參數使用模板,對于閉包使用類型推理(auto)是比較常見的。

    函數類型

    表意語義

    編輯

    編程語言中的函數類型并不對應于所有集合論函數的空間。考慮到自然數作為域和布爾作為范圍的可數無限類型,那么在它們之間存在著不可數的無限數量(2?0=c)的集合論函數。顯然,這個函數空間大于任何編程語言中可以定義的函數數量,因為只存在可數的程序(一個程序是由有限數量的符號組成的有限序列),其中一個集合論函數有效地解決了停止的問題。指稱語義學關注的是尋找更合適的模型(稱為域)來模擬編程語言的概念,如函數類型。事實證明,如果編程語言允許編寫非終止的計算,那么將表達限制在可計算函數的集合上也是不夠的(如果編程語言是圖靈完備的,那就是這種情況)。表達必須限制在所謂的連續函數(對應于斯科特拓撲學中的連續性,而不是真實分析意義上的連續性)。即使如此,連續函數的集合也包含平行或函數,它不能在所有編程語言中被正確定義。

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

    (3)
    詞條目錄
    1. 函數類型
    2. 編程語言
    3. 表意語義

    輕觸這里

    關閉目錄

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