Open
Description
분산 컴퓨팅을 위한 CPS
CPS를 사용하면 로컬과 분산에서 처리하는 것이 더 간단해진다.
조합(combination)을 계산해주는 함수인 choose를 작성해보자. 우선 일반적인 방법:
function choose (n,k) {
return fact(n) /
(fact(k) * fact(n-k)) ;
}
이제 이 코드가 로컬 컴퓨터가 아닌 서버에서 동작해야 하면
fact 프로시저가 블로킹되어 서버에서 응답이 오기까지 기다리도록 작성할 수도 있지만, 이 방법은 좋지 않다.
대신 CPS로 choose를 작성해보자:
function choose(n,k,ret) {
fact (n, function(factn) {
fact (n-k,function(factnk) {
fact (k, function(factk) {
ret (factn / (factnk * factk)) }) }) })
}
이제 비동기적으로 팩토리얼을 계산하는 fact 프로시저 만들기가 쉬워졌다. 아래와 같이 말이다:
function fact(n,ret) {
fetch ("./fact/"+ n,function(res) {
ret(eval(res))
}) ;
}
Metadata
Metadata
Assignees
Labels
No labels