Currency の SICP セクション 3.4 (スキームのシリアライザー) には、記述されているが MIT スキームでは実装されていない、並列実行と呼ばれる手順があります。誰かが実際に実装したのだろうか。そうでない場合、そのような手順の実装をどのように開始しますか?
http://mitpress.mit.edu/sicp/full-text/book/book-ZH-23.html#%_sec_3.4.1
Currency の SICP セクション 3.4 (スキームのシリアライザー) には、記述されているが MIT スキームでは実装されていない、並列実行と呼ばれる手順があります。誰かが実際に実装したのだろうか。そうでない場合、そのような手順の実装をどのように開始しますか?
http://mitpress.mit.edu/sicp/full-text/book/book-ZH-23.html#%_sec_3.4.1
parallel-execute
これは、Racket を使用して、SICP のセクション 3.4 の演習を解決するために実装した方法です。
(define (parallel-execute . procs)
(map thread-wait
(map (lambda (proc) (thread proc))
procs)))
本で定義されている手順と同じセマンティクスを持つことは保証できませんがparallel-execute
、演習問題を解決することはできました。
この本の公式サイトでは、実装のparallel.scmを提供しています。次のように MIT スキームを開きます。
mit-scheme -load PATH/parallel.scm
またはこれを置く
(load "PATH/parallel.scm")
あなたのスキームソースファイルの先頭にあります。
実際には、次のパッケージを使用して、必要なすべての実装をラケットにロードできます。これを定義ウィンドウまたは対話ウィンドウに入力するだけで、必要なパッケージがインストールされます。必要な場合は、定義ウィンドウに同じコメントを含めます。
(require (planet dyoo/sicp-concurrency:1:2/sicp-concurrency))