lambda-calculus

    3熱度

    4回答

    堆棧!在現代Haskell中可以定義Omega combinator(λx.xx)嗎?我猜想,Haskell98的類型系統旨在使這樣的事情變得不可能,但現代擴展又如何呢?

    2熱度

    1回答

    我的老師給了這個班級一些樣題(這個班主要在Scheme(球拍)和lambda演算中),而且我遇到了以下問題: 定義(β-reduce e)使得當β減少是可能的(即,當e的形式爲((λ v e1) e2)並且沒有阻止β-還原並且首先需要一些α重命名的自由變量衝突)時,它返回β減少的結果。否則,它返回#f。 例子: (β-reduce '((λ x (((λ x (x y)) x) (x b))) z

    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

    4熱度

    1回答

    我正在使用基於some existing code的項目,該項目使用unbound庫。 該代碼使用unsafeUnbind一堆,這是我的問題。 我使用freshen試過,但我得到以下錯誤: error "fresh encountered bound name! Please report this as a bug." 我想知道: 將是一個FreshM單子內完全使用意庫?還是他們的方式來做

    7熱度

    1回答

    min通常在無類型lambda演算定義爲(使用Caramel's syntax): sub a b = (b pred a) <= a b = (is_zero (sub b a)) min a b = (<= a b a b) 這是非常低效的。 Sub是二次的,因爲它適用pred(它是線性的)b次。還有一個更高效的實現min爲: min a b succ zero = (a a_succ

    0熱度

    1回答

    我想實現lambda表達式的解析器。但我得到 「不匹配輸入'預期 ')'」 的錯誤該輸入:(\ XX X)(\ XX X),不知道爲什麼...... 我有一個語法: grammar Lambda; lambda_expression : VARIABLE | '\\' VARIABLE '.' lambda_expression | ('(' lambda_e

    0熱度

    1回答

    lambda演算上下文中自由變量和變量自由出現之間是否有區別?如果是的話,請用一兩個例子來解釋。 其實我經​​歷了lambda表達式轉換規則我碰到下面一行哪裏傳來: 在說明的轉換規則的符號E[E'/V]用於意味着在V每個自由出現替代E'的結果E

    -1熱度

    1回答

    我想了解定點組合器。我認爲它被某些語言用來實現遞歸。主要的問題是,我不能讓下一個定義: 所以,請解釋一下形象。

    1熱度

    2回答

    我一直在尋找哈斯克爾的核心語言來了解它是如何工作的。我在互聯網搜索中發現的一個功能是類型強制。我知道他們習慣實施GADT,但我不明白其他許多。儘管我對系統F有很好的理解,但我在網上找到的所有描述對我來說都是相當高的水平。任何人都可以向我以可理解的方式解釋類型強制嗎?

    2熱度

    1回答

    的一行我在Haskell的一行寫的Thue-Morse squence定義爲整數的無限名單: thueMorse = 0:1:f (tail thueMorse) where f = (\(x:xs) -> x:(1 - x):f xs) 這是一次失敗的嘗試定義序列的結果在一行中,只有在lambda表達式和它本身方面,沒有let或where表達式(真正應該在兩行上呈現,使得上述解決方案成爲精神