continuation 2

함수와 흐름제어

함수를 호출하면 함수의 본문에 지정된 특정 코드가 실행된다. 즉, 함수 호출로 원하는 코드를 실행시킬 수 있다. 흐름제어란 특정 상태에서 원하는 코드를 실행시키는 것이다. 흐름제어에서 원하는 코드를 함수로 지정할 수 있을 것이라는 아이디어를 얻을 수 있다.예시예시로 while을 함수로 구현해 보겠다. 예시에서 쓰일 언어는 Javascript이다.function my_while(cond, body) { if (cond()) { body(); return my_while(cond, body); }}let i = 0;my_while((() => i { console.log(i); ++i;});my_while 함수는 조건 표현식과 실행될 본문 코드를 함수로써 인자..

Continuation과 callcc

이 글은 continuation 시리즈의 첫 글이다. 다음과 같은 순서로 이 시리즈를 진행해볼 생각이다.continuation과 call/cccontinuation passing style(CPS)delimited continuationcontinuation의 응용그럼 continuation과 call/cc. 시작하겠다.들어가기에 앞서...이 글에서는 의사 코드가 나온다. Scheme 문법을 사용할까 했지만 대부분의 사람들이 이에 익숙하지 않을 것이므로 필자가 임의로 만든 의사 코드를 사용하겠다.이 글에서 나오는 의사 코드의 특징:program은 0개 이상의 statement의 나열로 이루어진다. 예시는 다음과 같다.let a = 3 + 4; // statement1for (let i = 0; i Con..