タグ

プログラミングとhaskellに関するWindymeltのブックマーク (2)

  • Haskellで物理を殴ってレベルが上がった話 - Qiita

    事情により二日ばかし遅延評価となってしまい申し訳ありませんm(_ _)m 次元付き計算がいかに重要か 皆さん、量の計算をするうえで、単位を間違えちゃいけないよ、って教わったと思います。 180cm + 55kg = 235年  とかいう式は間違っていて、意味を成しませんよね。 間違えるとどんなことがおこるかって?テストに落ちるとかでしょうか。 1983年には、カナダ航空の飛行機が、燃料補給時に単位を間違えたために(間違いの質は、22300 kgの燃料を補給すべきところ、22300 ポンド しか補給しなかったというもの)飛行中にまさかの燃料切れに陥り、お祭り会場になっていた廃空港に緊急着陸を強いられ、あわや大惨事、というギムリ・グライダー事件が起こっています。 1999年、NASAの火星探査衛星マーズ・クライメート・オービターは、制御プログラムの力の単位にポンド重とニュートンが混在していた

    Haskellで物理を殴ってレベルが上がった話 - Qiita
  • モナドとはモナドである - モナドとわたしとコモナド

    この記事を読む前に、絶対に理解出来ないモナドチュートリアルに一度目を通してみてほしい。モナドを理解していく上で、とても重要なことが書かれている。 改めて言おう、モナドはモナドだ。コンテナだとかプログラマブルセミコロンだという説明では、モナドのすべてを正確に表せるとは言い難い。では、モナドを過不足なく説明できる、モナド以外の言葉はあるのか? 実は、モナドを表現し、かつモナドで表現される言葉は存在する。その一つは手続きである。手続き型言語の「手続き」だ。 手続きとは何か 手続きは結果を持つ おおよそすべての手続きは何らかの結果を持つ。Haskellの()、C言語のvoid、PythonのNone、Rubyのnilなども結果の一種だ。結果が出ないとしたら、そのプログラムは停止しないか、途中で異常終了するだろう。 手続きには最小単位が存在する 処理系が扱っている以上、手続きが際限なく分解できるとい

    モナドとはモナドである - モナドとわたしとコモナド
  • 1