我剛開始學習Haskell,我試圖在Haskell中使用lambda演算。我發現這個表達式將教堂的數字轉換成數字,但我似乎無法弄清楚這個表達式中的0是什麼意思。我找不到它:這個haskell表達式意味着什麼
zero = (\f -> \x -> x)
one = (\f -> \x -> f x)
two = (\f -> \x -> f (f x))
getNum church = church (\x-> (x + 1)) 0
這是最後一個讓我困惑的零。這是lambda表達式的基本情況還是一些參數?
教堂號碼是接受兩個參數的函數,而'church'變量就是這樣一個數字。所以它被稱爲兩個參數,一個是lambda表達式,另一個是0. –
好的,謝謝!但是表達式(\ x->(x + 1))只有1個參數,所以當0被替換時,它變成0 + 1。但是它是如何工作5個左右的?我還是不太明白。教會是Haskell語言中預定義的東西嗎? –
也許你可以通過'getNum zero'求值,然後'getNum one',然後'getNum two'# –