タグ

haskellとmathに関するkirakkingのブックマーク (4)

  • 有理数とか有限体とかのはなし - Qiita

    というのがアリます。 グレブナー基底で最近有名なこのでは色々な証明の為の$\mathbb{C}$、(連続的な)絵やグラフを描いたりする為の$\mathbb{R}$、そして計算機の中では$\mathbb{Q}$という書き方をしていたのが印象的です。 有理数の計算はコストが高い? 例えば計算機の中で素朴に割り算をすると大きく情報を損なう可能性が高いのは皆さんご存知だと思います、上であげた電卓の例がそれに当たります。 言うまでも無いことですが、計算機上で無限の精度で割り算を行うことは素朴には無理で、例えば浮動小数点数に丸めて計算すると普通は望む結果では無いものになってしまいます。 素朴な解決策は、Int を二つ取ってきた新しいデータ型で有理数を表現するという方法です。 これはまぁうまくいきます、しかし計算の途中で分母分子のInt が桁落ちしてないことは一般には保障されません。 たとえ入力と出力

    有理数とか有限体とかのはなし - Qiita
    kirakking
    kirakking 2016/12/24
    「誤解を恐れずに言えば、電卓の桁落ち問題は有理数体の濃度が無限だということに起因します、従って有限な体があればもしかしたら、、、というのが希望であり、今回の話のモチベーションにつながるわけです。」
  • 「圏論」は関数プログラミングの「モナド」に役立つ。入門PDF等のリンク集 - 勉強メモ (大学の講義動画や,資格試験の対策)

    数学の解説コラムの目次へ 圏論を学ぶ目的は,HaskellやScalaなどの関数型プログラミング言語をよく理解するため,としてよい。 モナドを実装するために必要という応用がある。 オンラインで圏論を学ぶための教科書: 役に立つ読み物 関数プログラミングと関連が深い とくに,モナドを考えるために圏論が必須! 格的に学ぶには? オンラインで圏論を学ぶための教科書: 「圏と関手入門」 http://www.math.nagoya-u.ac.jp/~hasim... 100ページ以上あるオンライン入門書 圏論は面白い(1) メタグラフ : tnomuraのブログ 圏論は面白い(3) メタ圏 : tnomuraのブログ(2は存在しない) 圏論は面白い(4) メタ圏(2) モノイド : tnomuraのブログ 圏論は面白い(5)  関手 : tnomuraのブログ 圏論は面白い(6)  自然変換 :

    「圏論」は関数プログラミングの「モナド」に役立つ。入門PDF等のリンク集 - 勉強メモ (大学の講義動画や,資格試験の対策)
  • 代数的データ型と準同型写像 - プログラムモグモグ

    最近考えていることを述べます. 代数的構造と準同型写像に関する考察です. 特に必要な知識は無いつもりですが, Haskellのコードを読めると嬉しいです. import Prelude hiding 以下のものを隠しておいて下さい. import Prelude hiding ((+), (++), length, True, False, Bool) 自然数とリストの定義 まず, 自然数(非負整数)とリストの定義からスタートします. data Nat = Zero | Succ Nat deriving (Show, Eq) 自然数はこんな感じです. ペアノの公理ですね. ここでは, 表示できるようにShowクラスのインスタンスとして自動導出しています. 更に, 同値であるか調べられる, という意味で, Eqクラスの自動導出もしています. ここで注意していただきたいのは, 名前が重要では

    代数的データ型と準同型写像 - プログラムモグモグ
    kirakking
    kirakking 2013/11/11
    A Play on Regular Expressions読んでみよ。
  • モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド

    モナドは「アクション」を表す抽象的な構造である。モナドは、Haskellにさまざまな概念に対する記述能力をもたらす。 モナドの基礎 return :: a -> m a: 純粋な値をモナドで包む。 m >>= f :: m a -> (a -> m b) -> m b: モナドmに包まれた値をfに渡し、その結果として現れたモナドを結合する。 固有アクション: それぞれのモナドに固有の方法でモナドを生み出す。 実行: モナドに包まれた値を、より根源的な形に還元する。 モナド則 モナドに以下の三つの制約を課すことによって、最低限度の記述能力を保証している。 return a >>= k == k a m >>= return == m m >>= (\x -> k x >>= h) == (m >>= k) >>= h より強い制約は、より強い力を生み出す。 モナドの分類 モナドは、以下の6つ

    モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド
    kirakking
    kirakking 2013/06/05
    そもそもモナドをビンビンに意識してコーディングする状況はどこにあるのだろうか。趣味かアカデミックしか思いつかない。
  • 1