タグ

Programmingとmonadに関するyifeのブックマーク (2)

  • エラー処理の地学史、もしくはあなたがMaybeモナドを使うべき理由。 | 月と燃素と、ひと匙の砂糖

    (以下、カノッサの屈辱(テレビ番組)のノリでお願いします) コンピュータの理論を確立したチューリング。彼は、無限のテープの長さを持ち、単なる計算を行うだけのチューリングマシンを夢想した。 しかし、我々の生きる現実世界におけるコンピュータでのプログラムに於いては、計算の失敗=エラーが発生するのは避ける事ができない宿命である。ネットワーク接続失敗、ファイルが見つからない、メモリが確保出来なかった…等々。すべてのエラーを書き出すには、それこそ無限の長さの紙が必要であろう。プログラム進化の歴史は例外との戦いであると言っても過言ではない。今回の講義では、プログラミング言語の様々な進化のうちの「エラー処理」に着目し、その長い戦いの歴史を概観する。 まずは、いにしえの先エクセプション紀におけるエラー処理を見てみよう。 先エクセプション紀:エラーコード-1の時代 エクセプション(exception)と呼ば

  • 「値が無い」ということをどう表現するか、あるいはOption型について - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 現在、「イケている」と呼ばれる関数型言語について、大抵の場合は「Option型」と呼ばれる型が実装されていたりします。具体的には、OCamlとScalaであり、HaskellにもMonadの一つとしてMaybe型というものがあります。 この「Option型」とは何か、といえば、要するに「値があるかどうかわからない型」という型であり、値として「値を持っていない」か、「値を持っている」という二つのパターンをとります。そして、「値を持っている」という状態のときだけその値に対してアクセスすることができます。 とはいえ、これだけだと何が嬉しいのかさっぱりわかりませんので、その辺りについて、少しだけメモしておきます。 「値が無い」ということを表現すること 素朴に考えて、「何らかの値が無い」ということを示すためには、二つの方法で表現することが出来ます。 値が無い場合は、None(Python

    「値が無い」ということをどう表現するか、あるいはOption型について - Line 1: Error: Invalid Blog('by Esehara' )
  • 1