church-encoding

    5熱度

    2回答

    使用Church編碼,可以在不使用內置ADT系統的情況下表示任何任意代數數據類型。例如,Nat可以表示(在伊德里斯例如)爲: -- Original type data Nat : Type where natSucc : Nat -> Nat natZero : Nat -- Lambda encoded representation Nat : Type Na

    0熱度

    1回答

    我剛開始學習Haskell,我試圖在Haskell中使用lambda演算。我發現這個表達式將教堂的數字轉換成數字,但我似乎無法弄清楚這個表達式中的0是什麼意思。我找不到它: zero = (\f -> \x -> x) one = (\f -> \x -> f x) two = (\f -> \x -> f (f x)) getNum church = church (\x-> (x +

    2熱度

    1回答

    有論recently stated: 免費單子是Church數 - 只用(內)仿函數,而不是功能! 他繼續to explain this說: 他們都是一個endofunct(離子|或)由0 - n次 我得到的Church數是一組匿名函數組成,每個數字都有一個組成。我只是不明白這是如何適用於Free Monads。 我的問題是:自由單體是教會數字嗎?

    2熱度

    1回答

    我試圖在Haskell中實現教會數字。這是我的代碼: -- Church numerals in Haskell. type Numeral a = (a -> a) -> (a -> a) churchSucc :: Numeral a -> Numeral a churchSucc n f = \x -> f (n f x) -- Operations with Church nu

    1熱度

    1回答

    我正在學習lambda微積分,只有它的基本知識。我閱讀了許多網站和論文,並理解邏輯(T/F /和/或),謂詞和後繼者的工作方式,但我不知道如何通過使用lambda演算來完成編程中的其他事情。 我想知道我怎麼會用自然數的對和有理數成對的演算整數的定義正,負整數。 謝謝你的幫助。

    0熱度

    1回答

    我已經定義教堂數字0,根據維基百科的定義,在教會數字的一些其他的標準功能如下: (define n0 (λ (f x) x)) (define newtrue (λ(m n) m)) (define newfalse (λ(m n) n)) (define iszero (λ(m) (m (λ(x) newfalse) newtrue))) (defi

    1熱度

    1回答

    我想了解xor在lambda微積分中的上下文。我瞭解異或(異或)作爲布爾邏輯運算https://en.wikipedia.org/wiki/Exclusive_or 和xor的真值表。 但是,如何,爲什麼這是真的爲XOR B =(A)((B)(假)(真))(B) 從http://safalra.com/lambda-calculus/boolean-logic/ 它確實是期望在演算什麼。當我看到

    1熱度

    1回答

    我是哈斯克爾的新手。 我在尋找是否有任何方法來創建一個類的類型的實例。 有沒有什麼辦法讓這段代碼工作而不使用數據或newtype? type N = ∀n. (n -> n) -> n -> n instance Printable N where print :: N -> IO() read :: String -> N 當我嘗試加載GHCI模塊它告訴我: Il

    3熱度

    2回答

    好的,所以我試圖實現basics of lambda calculus。在這裏。 我的號碼: def zero[Z](s: Z => Z)(z: Z): Z = z def one[Z](s: Z => Z)(z: Z): Z = s(z) def two[Z](s: Z => Z)(z: Z): Z = s(s(z)) 部分(實際上就是非)應用於它們的版本是水木清華這樣的: def z[

    4熱度

    2回答

    我試圖在斯威夫特3.實施Church Numerals目前,我有: func numToChurch(n: Int) -> ((Int) -> Int) -> Int { return { (f: (Int) -> Int) -> (Int) -> Int in return { (x : Int) -> Int in return f(numToChurch