교회 숫자를 포함한 람다 미적분학 평가


10

내가 이해하는 교회 숫자 같은 외모 (... n 번 ...) . "기능 이상이 수단 아무것도 인가 함수 배 ". λ s . λ z . cnλs.λz.ss n zszsnz

함수 의 가능한 정의는 다음과 같습니다. . 본문을 보면 함수의 논리를 이해합니다. 그러나 평가를 시작하면 문제가 발생합니다. 예를 들어 설명하겠습니다.t i m e s = λ m 입니다. λ n . λ s . 미디엄timestimes=λm.λn.λs.m(ns)

(λm.λn.λs.m(ns))(λs.λz.ssz)(λs.λz.sssz)λs.(λs.λz.ssz)((λs.λz.sssz)s))λs.(λs.λz.ssz)(λz.sssz)λs.λz.(λz.sssz)(λz.sssz)z

이제이 상황에서 처음 적용 하면 원하는 결과를 얻습니다. 그러나 (\ lambda zs \; s \; s \; z) \; (\ lambda zs \; s \; s \; z)를 먼저 적용하면 응용 프로그램이 왼쪽에서 연결되어 있기 때문에해야합니다. 잘못된 결과 :( λ Z . S(λz.sssz)z(λz.sssz)(λz.sssz)

λs.λz.(λz.sssz)(λz.sssz)zλs.λz.(sss(λz.sssz))z

더 이상 줄일 수 없습니다. 내가 무엇을 잘못하고 있지? 결과는 \ lambda s 이어야합니다 λs.λz.ssssssz


당신의 첫 학기의 교회 숫자는 옳지 않습니다. 2는 표시됩니다 아닌 . λ S . λ z . s s zλs.λz.s(sz)λs.λz.ssz
Uday Reddy

답변:


7

나는 당신의 감소가 정확하다고 생각합니다 (그러나 나는 그것을 눈으로 보았습니다). 마지막으로 를 적용 할 수 없습니다 이것은 용어에 나타나지 않습니다. 는 , 아닙니다 . 람다 미적분의 함수는 단일 인수를 취합니다. 그것들은 효과적으로 카레됩니다 : 2 인수 함수는 첫 번째 인수를 취하고 두 번째 인수를 가져오고 결과를 리턴하는 새로운 1 인수 함수를 리턴하는 1 인수 함수로 구현됩니다.(Z) λ Z . f f z λ z . ( F의 F ) Z λ Z . f ( f z )(λz.sssz)zλz.ffzλz.(ff)zλ.에프(에프)

교회 숫자를 정의 할 때도 같은 실수를했습니다. 에 대한 교회 숫자 는 함수를 번 구성하는 것을 기반으로 합니다. "함수 응용 함수 배 " . 당신이 쓴 것은 함수 응용 함수에 시간 마지막에 유용한 용어로 저를 공격하지 않습니다.n s n z λ s . λ z . s ( s ( s에스s n - 1 s zλ에스.λ.에스(에스(에스)))에스1에스

( λ m n s . m ( n s ) ) ( λ s z . s ( s2× 은 입니다. 줄어드는 지 확인하겠습니다 .λ Z . S ( S ( S ( S ( S ( S(λ미디엄에스.미디엄(에스))(λ에스.에스(에스))(λ에스.에스(에스(에스)))λ에스.에스(에스(에스(에스(에스(에스)))))


당신의 단락이 진행되는 한, 당신은 옳고 나는 이것을 알고있었습니다. 올바른 연관성을 적용하는 것이 올바른 결과를 낳았다는 것이 저를 놀라게했습니다. 두 번째 단락까지 : 당신이 옳습니다. 응용 프로그램의 왼쪽 연관성으로 인해 중괄호를 사용하지 않는 것이 잘못되었습니다. 이제 전체를 다시 줄이고 중괄호가 부족하여 오류가 발생했는지 확인합니다!
codd

그게했다. 내 표기법에 따라 잘못된 응용 프로그램 순서가 문제를 해결했음을 알 수 있습니다! 당신의 대답을 받아들입니다.
codd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.