我爲Core Haskell編寫了一個自定義的漂亮打印機,以便更好地研究Core的結構。這臺漂亮的打印機的要點是它需要一個CoreModule,並在輸出中包含數據構造函數,默認情況下Outputable實現看起來沒有。 這裏是我上運行的漂亮打印機模塊的代碼: module Bar2 where
add :: Int -> Int -> Int
add a b = a + b
add2 a
我正在嘗試討論ANF(管理範式),但我無法理解lambda術語的翻譯。考慮這個lambda項:λx.x。你如何在ANF中編碼? x是一個變量,而是一個lambda體必須是一個讓約束力或ANF的功能應用,根據ANF語法: EXP ::= VAL VAL
| let VAR = EXP in EXP
VAL ::= λ VAR . EXP
| VAR
好的,所以我試圖實現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[