@techreport{oai:ipsj.ixsq.nii.ac.jp:00030758,
 author = {田中, 朋之 and 渦原, 茂 and Tanaka, Tomoyuki and Uzuhara, Shigeru},
 issue = {50(1991-PRO-060)},
 month = {Jun},
 note = {多くの共有メモリ型の並列Lispでは並列性の記述にfuture式を用いている。本稿ではCommon Lispの多値機能にfutureを導入した場合の問題について考える。futureと多値機能を共存させるためには1つのfutureオブジェクトに複数の値を格納できるようにする必要がある。ところがそのままこの方法を用いると、プログラムにfutureを挿入した場合としなかった場合とで返す値の数が異なってしまう場合があり、Common Lispで定義される多値の意味を変えてしまう。この問題を解決するためにmv?context法とmv?pフラグ法の2つの方法を提案する。この2つの方法はマルチプロセッサ・ワークステーションTOP?1上の並列Lisp、TOP?1 Common Lispにおいて実現した。, The future construct is used in many shared-memory parallel Lisp systems to express concurrency. We consider the impact of introducing the future construct to the multiple value facility of Common Lisp. A natural way to accommodate this problem is by modifying the implementation of futures so that one future object returns (or resolves to) multiple values instead of one. We first show that how such a straightforward modification fails to maintain the crucial characteristic of futures, namely that inserting futures in a functional program does not alter the result of the computation. To overcome this problem, we present two methods which we call the mv-context method and the mv-p flag method. Both of these methods have been tested in TOP-1 Common Lisp, an implementation of a parallel Common Lisp on the TOP-l multiprocessor workstation. To our knowledge, this problem has never been analyzed nor solved in an implementation of parallel Lisp.},
 title = {Futures and Multiple Values in Parallel Common Lisp},
 year = {1991}
}