タグ

ブックマーク / sky.zero.ad.jp/~zaa54437 (1)

  • Rubyで関数プログラミング Part 9 【並行処理 1】

    この頁では、関数プログラミングと並行(並列)処理との適合性について説明したいと思います。 関数型言語にとっては、並行処理は概念的には極めて親和性の高い処理形式です。 なぜか?ということに対する答えは関数プログラミング言語の質的側面に関係しています。Part 5で、純粋な関数プログラミング言語では参照透明性が維持されているということを述べました。参照透明性が維持されていることは、プログラムの評価順序に関数の結果値が依存しないということです。ということは、任意のタスク(関数型言語では、関数となります)を1つのプロセスに割り当てることができるようになります。任意に割当ててもプログラマが管理しようとも同じことになるからです(概念的には)。命令型言語の場合、関数/手続は参照透明ではないので、任意の仕事をプロセスに割り当てることができません。任意に割り当ててしまったのでは、予測不能な動作をする恐

  • 1