실용적인 람다 계산기실용적인 람다 계산기는 편리한 명령과 바로 가기가있는 람다 계산기입니다. | |
지금 다운로드 |
실용적인 람다 계산기 순위 및 요약
광고
- 특허:
- Public Domain
- 가격:
- FREE
- 게시자 이름:
- Oleg
- 게시자 웹사이트:
- http://pobox.com/~oleg/ftp/Computation/lambda-calc.html
실용적인 람다 계산기 태그
실용적인 람다 계산기 설명
실용적인 람다 계산기는 편리한 명령과 바로 가기가있는 람다 계산기입니다. 실용적인 람다 계산기는 untypped λ-calculus의 정규 주문 평가자이며 편리한 명령으로 확장되고 더 많은 생산물에서 프로그래밍 할 수있는 바로 가기를 만드는 것은 조건을 나타내는 구별 상수입니다. 명령은 새 바로 가기를 정의하고 모든 감소의 추적을 활성화하고, 용어를 비교하십시오. 모듈러 알파 변환을 비교하고, 정의 된 모든 바로 가기 및 평가 플래그를 인쇄하십시오. 또는 특별한 명령으로 파일에서 "포함". Haskell Branch는 Haskell에 Lambda 계산기 (도메인 별 언어로)의 임베딩입니다. 계산기는 포옹이나 GHCI 내에서 대화식으로 사용할 수 있습니다. 현재 계산기는 정상 주문 감소의 효율적이고 우아한 알고리즘 인 것으로 보이는 것으로 보입니다. 알고리즘은 전통적으로 사용되는 접근법보다 "더 기능성"이됩니다. 알고리즘은 YACC SAN의 중요한 차이가있는 것과 동일한 것으로 보입니다. 계산기는 또한 절대적으로 필요한 식별자의 착색에 의해 달성되는 베타 - 치환의 위생에 대한 더 많은 "기능적"접근법을 더 많이 사용합니다. 이 접근법은 프로세스 전체를 통해 글로벌 카운터 또는 페인트 버킷의 스레딩을 피하기 때문에이 접근법은 "더 기능적"입니다. Haskell과 계산기의 통합은 우리에게 변수로 용어를 저장하고 쉽게 쉽게 저장할 수 있으며 직관적으로 결합 할 수 있습니다. 정상 주문 감소를위한 전통적인 조리법은 불쾌한 구절을 "완료 될 때까지 요리"합니다. 그 구절은 감축 시도를 추적하고 추악한 반복 알고리즘을 의미합니다. 우리는 YACC와 같은 직관적 인 재 작성 규칙을 통해 구현할 수있는 효율적이고 우아한 기술 인 것으로 보입니다. 시퀀스의 시퀀스를하고 단계를 줄임으로써 스택을 소유하고 작업을 줄입니다. YACC와 유일한 유일한 차이는 람다 계산기가 성공적인 축소 단계 후에 결과를 "반복적으로"합니다. 우리의 "파서"(람다 계산기)의 소스와 대상 언어는 동일합니다. 따라서 파서는 실제로 적용 할 수 있습니다. 파싱 스택을 암시 적으로 만들 수 있습니다. 이 경우, 알고리즘은 엉덩이로 입력 된 람다 용어의 정상화에 사용될 수 있습니다. 다음 예제는 람다 - 미적분이 haskell에 내장 된 도메인 별 언어가된다는 것을 보여줍니다.> c0 = f ^ x ^ x - Church 숫자 0 > succ = c ^ f ^ x ^ f # (c # f # x) - 후계자> c1 = eval $ succe # c0 - 다른 숫자 사전 평가> c2 = eval $ succ # c1> c3 = eval $ succe # C2> C4 = Eval $ Succ # C3IT는 Haskell 변수의 용어를 저장하고 사전 평가 (즉, 정규화)를 저장하는 것이 편리합니다. 그들은 정말로 용어입니다. 우리는 언제나 통역사에게 용어를 보여주기 위해 요청할 수 있습니다. 예를 들어, C4 수율을 보여줍니다 (f. (x. f (f (f (f (f (f (f (f x))))). mul = a ^ b ^ f ^ a # (b # f) - 곱하기 eval $ mul # c1 ---> (b. b), ID 함수 평가 $ mul # c0 ---> (b. f. (x. x)), "const 0"이들은 대수 결과입니다. 0으로 숫자를 곱하면 항상 0이됩니다. 우리는 지금 람다 - 미적분은 보편적으로 정량화 된 수식을 통해조차도 정리 증명을 위해 어떻게 유용 할 수 있는지를 볼 수 있습니다. Calculator는 프린트 조건의 깊이를 제한하기 위해 Fairbairn의 제안을 구현합니다. 이를 통해 일부 발산 조건 (소위 꼬리 발산 조건)을 평가하고 인쇄 할 수 있습니다. LAMBDA_CALC> y_comb = f ^ (((p # p # p) (c ^ p # p) # (c ^ f # p) (c # c))) $ y_comb 번호의 CC (C (C (C (C (C (C (C (C (C (...)))))))))) 그것은 놀라운 얼마나 잘 함께 람다 미적분과 하스켈 플레이.
실용적인 람다 계산기 관련 소프트웨어