lambda-calculus

    1熱度

    1回答

    ... partial application(或部分功能應用程序)是指將一定數量的參數固定到一個函數,產生另一個較小元數的函數的過程。 我想找出是否有以下特定的名稱:(僞代碼!) // Given functions: def f(a, b) := ... def g(a, b) := ... def h(a, b) := ... // And a construct of the f

    2熱度

    1回答

    我讀報紙Generics of a Higher Kind,第一句話就是 與Java 5和C#2.0,一階 參數多態性引入主流 對象 - 面向名稱仿製藥的 下 編程語言。 我不知道什麼是一階參數多態呢,我也不太明白什麼是一次函數,我知道高階函數是函數,它接受一個函數,返回一個函數,但我不不知道什麼是零階函數,一階函數。 只見解釋從here,像這樣: 的F - > G是零階 的F - >克 - >

    2熱度

    5回答

    我聽說可以使用lambda替換if語句。 這是可能的Python嗎?如果是這樣,怎麼樣?

    16熱度

    3回答

    我正試圖在哈斯克爾實現教會數字,但我遇到了一個小問題。 Haskell的抱怨無限型與 的發生檢查:無法構造無限類型:T =(T - > T1) - 當我嘗試做減法> T2 - >(T1 - > T2)。我99%肯定我的lambda微積分是有效的(儘管如果不是,請告訴我)。我想知道的是,是否有任何事情可以讓haskell與我的功能一起工作。 module Church where type (C

    5熱度

    1回答

    我開始學習lambda微積分,並且需要在Erlang中實現I,S,K組合器。 當然,S,K,I表示: S = λxyz.xz(yz) K = λxy.x I = λx.x 我沒有問題,在紙上理解我= SKK轉換(如這裏介紹:To prove SKK and II are beta equivalent, lambda calculus),但它似乎說到我不明白功能性語言和高階功能... 我能夠做到我

    2熱度

    1回答

    Church數可以在C++ 0x中表示使用該語言的新拉姆達部分使用類似this(C++ 11): typedef function<int(int)> F; static const F id = [=](int x) { return x; }; function<F(F)> church(unsigned int i) { if(i == 0) { return [

    11熱度

    2回答

    我正在通過Types and Programming Languages進行工作,而針對按價值降低策略調用的皮爾斯給出了術語id (id (λz. id z))的示例。內部redex id (λz. id z)首先減少爲λz. id z,在外部redex減少爲正常形式λz. id z之前,由於第一次減少而給出id (λz. id z)。 但是,按價值順序調用的定義是'只有最外面的索引被減少','只

    0熱度

    1回答

    我有這樣的λlambda表達式:λx(λy(λz.x(YZ))。) 我試圖寫一個計劃表達出來的。 我這樣做: (define (f x)(lambda(y z) (f (y z)))) 是嗎?如果不是,我做錯了什麼?

    26熱度

    3回答

    我對Ruby有點新鮮,仍然試圖理解一些語言設計原則。如果我已經明白了,Ruby中的lambda表達式調用必須使用方括號,而「常規」函數調用使用「常規」/圓括號。 是否有一個特殊的原因,語法不同?換句話說,(爲什麼)調用者應該知道他們是否調用函數或應用lambda表達式?

    3熱度

    2回答

    我是lambda微積分新手,正努力證明以下幾點。 SKK和II是beta等價物。 其中 S =拉姆達xyz.xz(YZ) K =拉姆達xy.x I =拉姆達XX 我試圖測試通過打開它減少SKK,卻得到了不通,它變得混亂。不認爲SKK還可以不擴大S爲減少,K