このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

時間を扱いたい(らしいね>自分)

クリーネ代数への批判と賞賛: プログラムのモデル色々」を書くときに、過去の記事をザッと見渡しました。「不純」という語にしょっちゅう出会うので、僕が拘っているキーワードのひとつは「不純」だと分かります。幾つか記事を挙げると:

クリーネ代数に「批判と賞賛」の念を抱くのと同様に、純粋関数型にも「批判と賞賛」の両方の思いがあるのです。通底する感情は、「時間を消し去る試み」に対する違和感でしょう。

完全な表示的意味論とか純粋な関数型計算とかでは、時間概念を追い出そうとします。表立っては時間が出てきません。時間があると、順番とか手順とかが出現しますが、その順番・手順を排除するように頑張るのが「純粋」主義でしょう。

しかし、時間概念を追い出すのは無理だと思うのです。人間は時間が流れる世界に生きているので、常に順番・手順により行動しています。計算機だって順番・手順で動いています。何かをする順番・手順を変えたら結果も変わり得ます。仮に結果が同じでも、順番・手順の良し悪しはあります。

時間を排除するのではなくて、時間が流れること/順番・手順に従い物事が進むのを認めて、時間を含むプログラムのモデルを作るべきじゃないか、と思うのです。

圏的モデルを作るにしても、時間・順番・手順が入ると、対称性・交替性を持つモノイド積は期待できなくなります。プレモノイド積(「非交替的な積を持つ圏達」参照)が必要でしょう。

時間が入ると、時間方向と空間方向という明らかに違う“方向”が出てきます。少なくとも二方向に拡がった代数系を扱う必要が生じて、高次圏(higher category)を持ち出さずには済まないわけです。

というわけで、不純なモデルは非対称・非交替的モノイド積を持つ高次圏という枠組みになっちゃう。その欠点は、難しいこと ^^;