lambda-calculus

    2

    1답변

    저는 람다 미적분 (파싱이 아니라 파싱이 평가되는 것입니다)을 평가하는 알고리즘에 대해 조금 읽었습니다. 그러나 지금까지는 모두 펜과 종이로 사용하는 방법과 비슷했습니다. 나는 처음부터 C#에서 내 자신의 람다 미적분 평가기를 쓰고 싶습니다 그리고 실제 프로그램이 이것을 어떻게하는지 알고 싶습니다. 람다 식은 람다 미적분의 상위 집합이므로 람다 식의 람다

    0

    1답변

    [x |-> v] t을 "t에서 x의 모든 자유 어커런스를 v로 대체"라고합시다. 내 교과서의 대체 규칙은 내가 아주 처음 두 규칙을 이해하지 않는 [x |-> v] x=v [x |-> v] y=y (where y is not x) [x |-> v] (function x -> t) = (function x -> t) [x |-> v] (functio

    3

    1답변

    가 나는 정상적인 폼의에서 용어 (z (λy.z x) (λy.y z)) 이미 것을 말씀 드리 지요 -하지만 난 왜 이해가 안 돼요. (z (λy.z x) (λy.y z)) ==> (z z x)

    3

    1답변

    나는 최근에 람다 계산법에 대해 연구 해왔고 나는 환원과 대체에 대해 많은 의구심을 가지고있다. 알파 및 베타 감소 란 무엇입니까? 그리고 언제 그리고 왜 사용됩니까? 누군가가 λ caculus의 축소 및 대체에 대한 훌륭한 자료를 말할 수 있다면 좋을 것입니다.

    3

    2답변

    (도 1) 단순히 입력 람다 계산법의 일부 (도 1)에 대한 람다 계산법, 그것은 하스켈 구현된다. evaluate expression = do case expression of (Application (Lambda x ltype term) value) | isValue value = True -> substitute term x va

    0

    2답변

    내가 람다 미적분 파서를 작성하는 것을 시도하고있다, 나는 정의 된 문법 LLR에없는 것 같다 E ::= x | \x.E | EE | (E) 내가 왼쪽 재귀 감소 : E ::= xE' | \x.EE' | (E)E' E'::= EE' | <empty> 를 잘 작성하지 것을, 아무도 도와 드릴 수 있습니까?

    1

    1답변

    간단한 람다 계산법 문법 (아래 참조)을 작성하려고합니다. 내가 겪고있는 문제는 함수 응용 프로그램이 왼쪽 연관 대신 오른쪽 연관으로 취급되는 것입니다. "f 1 2"는 ((f 1) 2) 대신 (f (1 2))로 구문 분석됩니다. ANTLR에는 토큰에 대한 assoc 옵션이 있지만 함수 적용을위한 연산자가 없기 때문에 ANTLR이 여기서 도움이되는 방법을

    1

    1답변

    람다 미적분학에서 입력이 신원 함수 일 때 참을 리턴하는 함수를 작성하는 방법은 무엇입니까? true로 교회에서 인코딩 한 값이 true라고 가정합니다. 작성하는 것이 쉬운 기능이어야하는 것처럼 보입니다. 그러나 내가 생각하는 모든 테스트에 대해 까다로운 입력은 그것을 능가 할 수 있습니다. 불가능한가요?

    0

    2답변

    필자는 피어스 유형 및 프로그래밍 언어 책을 읽었으며 재귀 유형에 관한 장에서는 입력 된 언어로 동적 람다 계산법을 인코딩하는 데 사용될 수 있다고 언급했습니다. 연습으로, 나는 하스켈에서 해당 인코딩을 쓰기 위해 노력하고있어하지만 난 그것이 typechecker 통과 얻을 수 없다 : 지금 {-# LANGUAGE RankNTypes, ScopedTypeV

    6

    1답변

    BLC는 괄호를 어떻게 인코딩합니까? 예를 들어,이 방법은 다음과 같습니다. λa.λb.λc.(a ((b c) d)) BLC로 인코딩합니까? 참고 : 익숙하지 않은 표기법을 사용하고 괄호가 포함되지 않은 간단한 예와 분석하기 어려운 매우 복잡한 예를 제공하므로 Wikipedia 기사는별로 도움이되지 않습니다. 이 논문은 그 측면에서 비슷합니다.