lambda-calculus

    5熱度

    2回答

    雖然在Haskell寫一些lambda函數,我本來寫類似的功能: tru = \t f -> t fls = \t f -> f 不過,我很快就從例子中注意到網上,這樣的功能是經常這樣寫: tru = \t -> \f -> t fls = \t -> \f -> f 具體,傳遞給函數的每個項目都有自己的\和->而不是上面的。當檢查它們的類型時,它們看起來是相同的。我的問題是,它們是否

    0熱度

    4回答

    我正在寫一個Python腳本,應該採取函數列表,寫成lambda表達式,並返回所有函數的撰寫,但是,我在腳本中有一個箭頭,也許因爲我使用lambda表達式的方式。這似乎即使我給返回的函數一個數字值,我回來了一個函數,而不是一個數字。這是我寫的: def compose1(lst): if lst == []: return lambda x: x else:

    0熱度

    1回答

    讓我們將[x |-> v] t表示爲「用v替換x中的所有空閒事件」。 我的教科書的替代規則是 [x |-> v] x=v [x |-> v] y=y (where y is not x) [x |-> v] (function x -> t) = (function x -> t) [x |-> v] (function y -> t) (where y is not x) =

    3熱度

    1回答

    有人告訴我,術語 (z (λy.z x) (λy.y z)) 已經在它的正常形式 - 但我不明白爲什麼。無法一個再拍的β-減少在這種狀態下,並通過(λy.y z)取代y所有出現在長期(λy.z x),所以它會評估爲: (z (λy.z x) (λy.y z)) ==> (z z x)

    3熱度

    1回答

    我最近一直在研究lambda計算,我對減少和替換有很多疑問。什麼是α和β減少?何時和爲什麼他們使用? 如果有人能夠告訴任何有關lambda caculus中減少和替代的良好資源,那將是非常棒的。

    0熱度

    2回答

    我想寫一個演算解析器,我定義的語法似乎不LLR: E ::= x | \x.E | EE | (E) 我減輕左遞歸: E ::= xE' | \x.EE' | (E)E' E'::= EE' | <empty> 似乎不對,任何人都可以幫忙嗎?

    1熱度

    2回答

    如何在Matlab中做如下測試? 我的目標是避免重複作業和懶惰評估的東西 - 也許相關的問題multiple step anonymous functions。 顯然,大多數功能特性僅在Matlab2013B中受支持。

    1熱度

    2回答

    有人可以用替代方法向我解釋我們如何得到一個數字「零」或其餘的自然數? 的值。例如: 「零」 λf.λx.x ,如果我申請上的這種表達的另一種表達: "(λf.(λx.x)) a" 然後使用替換: :=[a/f](λx.x) :=(λx.x) 我是什麼失蹤?我應該如何解釋這些數字表達式?

    0熱度

    2回答

    我正在閱讀Pierce的類型和編程語言書籍,在關於遞歸類型的章節中他提到可以用類型化語言對動態lambda積分進行編碼。作爲練習,我試着寫在Haskell該編碼,但我不能讓它通過typechecker:眼下 {-# LANGUAGE RankNTypes, ScopedTypeVariables #-} data D = D (forall x . x -> x) lam :: (D ->

    6熱度

    1回答

    BLC如何編碼括號?例如,這將如何: λa.λb.λc.(a ((b c) d)) 在BLC中編碼? 注意:維基百科的文章不是很有用,因爲它使用了一種不熟悉的符號,並且只提供一個簡單的例子,它不涉及括號,也是一個很難分析的非常複雜的例子。該論文在這方面是相似的。