-
柯里化
鎖定
在計算機科學中,柯里化(Currying)是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,並且返回接受餘下的參數且返回結果的新函數的技術。這個技術由 Christopher Strachey 以邏輯學家 Haskell Curry 命名的,儘管它是 Moses Schnfinkel 和 Gottlob Frege 發明的。
- 中文名
- 柯里化
- 外文名
- Currying
- 應用領域
- 計算機科學等
- 類 型
- 技術
柯里化介紹
在直覺上,柯里化聲稱“如果你固定某些參數,你將得到接受餘下參數的一個函數”。所以對於有兩個變量的函數yx,如果固定了 y = 2,則得到有一個變量的函數 2x。
在理論計算機科學中,柯里化提供了在簡單的理論模型中比如只接受一個單一參數的lambda 演算中研究帶有多個參數的函數的方式。
柯里化動機
Currying提供了一種處理帶有多個參數的函數的方法,並在函數可能只佔用一個參數的框架中使用它們。例如,某些分析技術只能應用於具有單個參數的函數。實際功能經常需要更多的論據。 Frege表明,為單個參數情況提供解決方案就足夠了,因為可以將具有多個參數的函數轉換為單參數函數鏈。這種轉變被稱為currying。在數學分析或計算機編程中通常可能遇到的所有“普通”函數都可以進行計算。但是,有些類別無法進行干擾;允許currying的最一般類別是封閉的monoidal類別
[1]
。
一些編程語言幾乎總是使用curried函數來實現多個參數;值得注意的例子是ML和Haskell,在這兩種情況下,所有函數都只有一個參數。此屬性繼承自lambda演算,其中多參數函數通常以curry形式表示。
Currying與部分應用有關,但與部分應用不同。在實踐中,閉包的編程技術可以用於通過在具有curried函數的環境中隱藏參數來執行部分應用和一種currying。
- 參考資料
-
- 1. 基因表達式程序設計進行復雜函數參數識別 .萬方[引用日期2018-07-12]
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:7次歷史版本
- 最近更新: c1785139121