haskellに関するtaniminaのブックマーク (9)

  • fam.cx

    This domain may be for sale!

  • Haskellの入出力

    参照透過性と遅延評価 純粋遅延関数型言語に入出力を導入する場合には、 参照透過性や遅延評価とどう折り合いをつけるか、 が問題になる。 参照透過性(Referential Transparency) 「参照透過性」の正確な定義は知らない。 けれど、だいたい 「等しいものを別の等しいものに置き換えられて、 置き換えての全体の結果が変わらない」 という性質を「参照透過性」と呼ぶ。 (「代入可能性の原理」とどう違うのかは、よく判らない) なんでこの性質を参照透過性と呼ぶのかも正確な所は判らないけど、 たぶん次のような事が元になっているのでは、と予想している (以下しばらく、題(入出力の話)とは関係ない)。 クワインは「指示と様相」(「論理的観点から」に収録)で、 だいたい次のような事を書いている。 名前(とか項とか)が単に対象を指示するものとして現れている場合を 「純粋に指示的(purely r

  • Scheme:ExplicitMonad

    Shiro: SchemeでMonadを書こう、という話はちょくちょくある。 OlegさんのMonadic Programming in Scheme Neelakantan KrishnaswamiのMonads in Scheme teranishiさんのページ howm wiki - モナド 実用的な見地からは、Monadが便利なのはモナド則を満たす基演算を定義 しておけば他の色々な操作がジェネリックに行えることだ。 (call-with-iteratorsさえ定義しておけばgauche.collectionの色んな ジェネリック関数が使えるようになりますよ、というのに似ている)。 ただ、Schemeのような実行時型判定を行う言語でMonadを使おうとすると どうもすっきりいかない。というのは、Monadの基演算が引数の型だけでなく 戻り値の型でディスパッチする必要があるからだ。

    Scheme:ExplicitMonad
  • d.y.d. DanoMoi と Haskell

    17:24 06/09/27 XP theme 昨日 OSXP というビジュアルスタイルを知りました。 完全にMacOS化してない辺りがかなり好みです。しばらく使ってみよう。 ただ日語のせいかスタートメニュー周りがずれるので、TClockで調整したりユーザーの 表示名をスタイルに合わせて変えたりと適当に酷い合わせ方をしてます。 マジメに直そうよ>自分。 LCSD LCSD '06 (Library-Centric Software Design) のプログラムが出てました。 "ライブラリ" そのものを対象にしてその設計や実装について議論する学会…ということで 特に言語について限定されてはいません。が、実際中身を覗いてみると、 基調講演や Program commitee の面々の名前を見る人が見ればすぐわかるように、 えらく濃いC++使いが集結する感じの学会です。 (や、必ずしも皆が皆C

  • モナドで悟りをひらきたいのなら - 図でわかる(?)モナド - Pixel Pedals of Tomakomai

    圏論の最大の武器はダイアグラムなので、モナドで悟りをひらきたいのならダイアグラムを使えばいいんじゃないでしょうか。 ダイアグラムの書き方 例えば、「 f :: a -> b 」とか「length :: [a] -> Int」は以下のように書きます。型を点で、関数を矢印で書きます。 ダイアグラムの利点は、fやlengthの中身を忘れて簡略化することができることです。人間の脳ができることには限りがあるので、注目する情報が少ない方が理解しやすくなるってスンポーです。 なお、 合成 g . f は図示する時に順が逆になるので気をつけて下さい。これは、合成関数の適用が g ( f x ) と書けることに由来してます。まずfを適用し、次にgを適用するということです。 return と >>= の図示 今回のダイアグラムの約束として、元となる型(Bool, Char, Int 等)は最下段に書きます。そ

    モナドで悟りをひらきたいのなら - 図でわかる(?)モナド - Pixel Pedals of Tomakomai
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • モナドの初歩 - 再帰の反復blog

    リスト フィリップ・ワドラー(Philip Wadler)は 「How to replace failure by a list of successes: a method for exception handling, backtracking, and pattern matching in lazy functional languages」(1985)で、失敗やバックトラックの可能性がある場合に結果をリストにして返すようにするというテクニックを紹介している。 すべての答えを探索してリストにして返す関数を呼び出しても、遅延評価言語ならば、実際にすべての答えを探索するわけではなく、必要に応じて必要なだけの答えを計算する。そのためリストを返す関数をバックトラック機構の代わりに使うことができるというのがこのテクニックのポイントになる(もちろんバックトラックが使われる全ての場合に適用できる

    モナドの初歩 - 再帰の反復blog
  • Haskellで副作用が使えることをなんて説明すればいいの?

    mzp @mzp 「Haskellって副作用ないのにどうやってゲームとか作るの?」って質問にうまく答えれない。IOモナドのおかげで、副作用がなくても副作用があるプログラムが作れるんです、って言っても意味が分かんないよね SKS rep @repeatedly ggrksしかないんじゃ… RT @mzp: 「Haskellって副作用ないのにどうやってゲームとか作るの?」って質問にうまく答えれない。IOモナドのおかげで、副作用がなくても副作用があるプログラムが作れるんです、って言っても意味が分かんないよね

    Haskellで副作用が使えることをなんて説明すればいいの?
  • [FAQ]Haskellには副作用があるのか、ないのか

    Nobuo Yamashita @nobsun モナドの話をするときに副作用への言及は不要だと思います。もし言及するなら、定義を明示していただけると嬉しいなぁ。それと記述対象の性質についてなのか、記述言語の性質なのかを是非区別してもらえると混乱しなくていいなぁ。と思います。

    [FAQ]Haskellには副作用があるのか、ないのか
  • 1