앞에 이 글을 적었습니다.
'MIT/GNU Scheme - Windows 사용법'
MIT/GNU Scheme를 실행시킨 이유는 바로 parallel-execute 프로시저 때문이었습니다.
하지만 돌리니 그런 변수는 없다는 황당한 메시지를 띄우네요.;;
![c20[2]](http://nosyu.pe.kr/attach/1/XN2Y1JSmPo.png)
그리하여 좌절하고 있던 중 구글 검색을 하니
DrScheme에 확장판으로 제공되고 있음을 알았습니다.
혹시나 하는 생각에 실행을 시켜보았습니다.
![c21[3]](http://nosyu.pe.kr/attach/1/XC4WANVsMs.png)
방법은 제일 앞에
(require (planet "sicp-concurrency.ss" ("dyoo" "sicp-concurrency.plt" 1 1)))
라는 코드를 넣기만 하면 됩니다.
두 개의 프로세스가 잘 나오는군요.;;;;
혹시나 해서 그 다음으로 나오는 make-serializer도 돌려보았습니다.
![c23[2]](http://nosyu.pe.kr/attach/1/XVhEZonBwQ.png)
이것도 문제 없이 잘 되더군요.OTL...

거기에 책에 나오는 코드를 돌려보니 그 결과도 제대로 나옵니다.OTL...
처음의 것은 두 프로세스가 마구 섞여 나오는 값입니다.
따라서 101, 121, 110, 11, 100이 나오지요.
하지만 두 번째 것은 줄을 세웠기에 뒤섞이지 않습니다.
따라서 121과 101만 나오는 것입니다.
약 두 시간 가량을 삽질했네요.OTL....
하지만 덕분에 Emacs에 대해 관심을 다시 가질 수 있게 되었습니다.
사실 리눅스를 쓰면서 처음에는 Vi를 사용하였습니다.
이유는 대학교 인터넷 프로그래밍 수업 때 가르쳐 준 프로그램이 Vi이기 때문입니다.
그러다 Vi는 명령어를 실행시키기 위해 :를 눌러야 하므로
그 귀차니즘에 Emacs로 넘어갔습니다.
한참을 잘 쓰다 Tab size를 조절하는 법을 도저히 찾지 못했습니다.
Tab size를 4로 맞추지 않으면 감점한다는 교수님의 조건에 충족시키기 위해
어쩔 수 없이 방법을 알아낸 Vi로 넘어가 사용하였습니다.
그 후 MIT Scheme 덕분에 다시 Emacs에 관심을 다시 가질 수 있었습니다.^^
(다만, 결과는 삽질이 되고 말았지만...)
오늘 SICP 문제를 풀려고 하였지만 그러지 못하고 말았습니다.ㅜㅜ
진도가 이렇게 느려서야... 어렵습니다.ㅜㅜOTL...
(require (planet "sicp-concurrency.ss" ("dyoo" "sicp-concurrency.plt" 1 1)))
(define (test-1)
(define x 10)
(parallel-execute (lambda () (set! x (* x x)))
(lambda () (set! x (+ x 1))))
x)
(define (test-2)
(define x 10)
(define s (make-serializer))
(parallel-execute (s (lambda () (set! x (* x x))))
(s (lambda () (set! x (+ x 1)))))
x)
; execute
(test-1) (test-1) (test-1) (test-1) (test-1)
(test-1) (test-1) (test-1) (test-1) (test-1)
(newline)
(test-2) (test-2) (test-2) (test-2) (test-2)
(test-2) (test-2) (test-2) (test-2) (test-2)
- SICP Exercise 연습문제 3.41 (0)2008/07/16
- SICP Exercise 연습문제 3.40 (0)2008/07/16
- SICP Exercise 연습문제 3.39 (0)2008/07/16
- DrScheme(PLT-Scheme)에서 병행성(concurrency) ... (2)2008/07/15
- MIT/GNU Scheme - Windows 사용법 (4)2008/07/15
- SICP Exercise 연습문제 3.38 (0)2008/07/14
- SICP Exercise 연습문제 3.37 (0)2008/07/13
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
SCIP 보다가 찾아 왔는데 ㅋ 좋은 정보 감사합니다.
반갑습니다.
도움이 되었다니 저도 기분이 좋습니다.^^
좋은 하루 보내세요~