Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPS #92

Open
zerozoo-a opened this issue Oct 18, 2023 · 0 comments
Open

CPS #92

zerozoo-a opened this issue Oct 18, 2023 · 0 comments

Comments

@zerozoo-a
Copy link
Owner

분산 컴퓨팅을 위한 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))
}) ;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant