X가 계수 일 때 3 개의 인수를 얻으려는 시도, Y가 지수이고 R이 대답을 반환해야합니다. 내 코드 지금까지 - 나는 그것이 작동하지 않습니다 알고 exp(X,0,R):- R is X*X.
exp(X,Y,R):- Y1 is Y-1, exp(X,Y1,R).
. 하지만 알아낼 수 없습니다.
배경 : 학교 프로젝트를 위해 .NET 컴파일러 (C#과 매우 유사)를 프로그래밍 중입니다. 현재 추가하려고하는 기능 중 하나는 메서드 내에서 꼬리 호출 재귀입니다. 추가 정보 : CIL에서는 "this"가 마치 다른 인수 인 것처럼 인스턴스 메서드에 전달됩니다. 따라서 정적 메서드의 첫 번째 인수에 액세스하면 ldarg.0을 내보내 겠지만 인스턴스 메서드
Microsoft의 새로운 F # 프로그래밍 언어는 기능 프로그래밍 (일급 어휘 클로저 및 꼬리 호출)과 멀티 코어를 쉽게 활용할 수있는 효율적인 동시 가비지 수집기의 강력한 조합을 제공합니다. OCaml, Haskell, Erlang 및 내가 알고있는 모든 무료 Lisp 및 Scheme 구현에는 동시 GC가 없습니다. 스칼라와 Clojure는 동시 GC를
사용자 지정 가상 컴퓨터에서 꼬리 호출을 구현하려면 어떻게해야합니까? 필자는 원래 함수의 로컬 스택을 해제해야한다는 것을 알고 있습니다. 그런 다음 인수가되고 새로운 인수를 사용합니다. 그러나 함수의 로컬 스택을 해제하면 새 인수를 어떻게 푸시해야합니까? 그들은 방금 스택에서 튀어 나왔습니다.