タグ

ブックマーク / jutememo.blogspot.com (8)

  • Haskell の State モナド (1) - 状態を模倣する

    昔、モナドがよくわからなかったので、さまよっていたら、 … ネットで見たMonadの説明で一番私がわかりやすいと思ったのは、Wikibooksの説明。Hello World!がブラックボックスな人は、是非一読を。 (404 Blog Not Found:Haskellで一番難しいのは より) 最初にこの Wikibooksの説明 を読んだのは去年の 11 月頃。そのときの文書のバージョンは  05:13, 27 October 2008 で、今は内容が随分増えている。前の文書は、現在の Haskell/Understanding monads/State に相当するようだ。 ところで、上記の解説を最初読んだとき全く意味がわからなかった。 (@_@;) 「3 Stateful Computations」 では、「ランダムな数字を生成する関数」を例に挙げてモナドの説明がされていたけれど、何が言

    Haskell の State モナド (1) - 状態を模倣する
    kzfm
    kzfm 2012/07/16
    @ringtaro 私にはこれがわかりやすかったです。
  • Python のパッケージを pip でインストール

    1. EasyInstall を使い、Python Package Index よりパッケージをインストール PyPI とは、 The Python Package Index is a repository of software for the Python programming language. Python のパッケージが管理されているリポジトリ。 easy_install CheeseShopTutorial - PythonInfo Wiki によると、お手軽に Python のパッケージをインストールするには、EasyIntall を使うとのこと。 EasyInstall (easy_install) gives you a quick and painless way to install packages remotely by connecting to the P

    kzfm
    kzfm 2010/12/28
  • Haskell のWriter モナド (1) – Control.Monad.Writer を使う前に

    1. 最終的な結果だけでなく、中間結果も出力したい 例えば、次のような簡単な計算を行わせた場合、 (1 + 2) * 3 - 4 答えは `5’  となる。 関数 (演算) が適用される、それぞれの過程の結果を考えると、 1 + 2 => 3 3 * 3 => 9 9 – 4 => 5 となる。 このように最終的な結果だけではなく、計算途中の結果も表示したい場合には、どうすればいいのだろう? 2. let 式で中間結果を束縛 まず、考えられる方法は、それぞれの中間結果を、後で参照できるように let 式内で変数に束縛。結果をコンマ区切りで表示するなら、 main = do let a = 1 + 2 b = a * 3 c = b - 4 print $ show a ++ "," ++ show b ++ "," ++ show c ++ "," 結果は、以下のようになる。 "3,9,5

    Haskell のWriter モナド (1) – Control.Monad.Writer を使う前に
    kzfm
    kzfm 2010/02/01
  • Haskell の read 関数で、文字列から代数的データ型へ変換 - 導出インスタンスを使って

    1. 文字列から代数的データ型へ変換したい Haskell の print 関数で日語を出力するために、以下のコードを参考にした。 どう書く?org 6616 nobsun: Item型を定義して、これをReadクラ...(設定ファイルから値を取得) 上記には、 「文字列から、代数的データ型へ変換するための、Read クラスの導出インスタンスの使い方」 についても、わかりやすく書かれていた。忘れないうちに、練習しておこう。o(^^)o 2. Show クラスの使い方はわかってきた ところで、Read の反対 Show クラスについては、少しわかるようになった。 フィールドに型変数を含んだ型の print 代数的データ型の値を print で出力には しかし、Read についてはチンプカンプンだった。 (+_+) 3. Read クラスについて 文字列を、特定の型へ変換する例を、最初に書い

    Haskell の read 関数で、文字列から代数的データ型へ変換 - 導出インスタンスを使って
    kzfm
    kzfm 2009/11/27
  • 痛恨の Google Notebook 開発中止 (+_+)

    追記 (2010.6.5) : 未だに Google Notebook を使い続けているけれど、アドオンを無理に利用しなくなった。ノートするときは新規ウィンドウで Google Notebook を開き、Make Link で文章を引用するための形式をカスタマイズ してコピペするようにした。 グーグル、「Jaiku」「Dodgeball」「Notebook」などでサービス打ち切り:マーケティング - CNET Japan え… (@_@;) 何か悪い冗談かと思いきや、リンク先の開発ブログを見たら、 Starting next week, we plan to stop active development on Google Notebook. (Official Google Notebook Blog: より) パタッ(o_ _)o~† 欲しかった機能 Google Notebook

    痛恨の Google Notebook 開発中止 (+_+)
    kzfm
    kzfm 2009/01/19
  • Python で二進数、十進数の変換

    1. 二進数から十進数へ Python で、数値を 2 進数から十進数に変換したい。 2.1 組み込み関数 によると、 int([x[, radix]]) 文字列または数値を通常の整数に変換します。…radix 引数は変換の基数を表し、範囲 [2, 36] の整数またはゼロをとることができます。 long([x[, radix]]) 文字列または数値を長整数値に変換します。…radix 引数は int() と同じように解釈され、x が文字列の時だけ与えることができます。 int() 関数を、このような目的で使えることを知らなかった。(@_@;) 例えば、2進数を表す文字列 1010 を、十進数に変更する。 >>> print int('1010',2) 10 2. 十進数から二進数へ 十進数から2進数へ変換するには format 関数を使う。 PEP 3101: Advanced Stri

    kzfm
    kzfm 2008/10/19
  • Python でリスト内のリストを連結 - Haskell の concat 関数を真似る

    1. ネストしたリストの要素を結合したい Python で、リスト内のリストを結合したい。 [[1,2,3],[4]] → [1,2,3,4] Haskell の concat 関数 に相当する関数を探したが、見つからなかった。 Prelude> concat [[1,2,3],[4]] [1,2,3,4] 自分で書くしかないのかな ? 2. Haskell の concat 関数は、型に注意 最初に、Haskell の concat 関数の動作を確認する。 Prelude によると、concat 関数の型は、 concat :: [[a]] -> [a] いくつかの例を試す。 test1a = [[1,2,3],[4]] test1b = [[1,2,3],4] test2a = [[[1,2,3]],[[4]]] test2b = [[[1,2,3]],[4]] main = prin

    kzfm
    kzfm 2008/09/29
  • GIMP で Lomo 風のフィルタをかける

    Flickr や zooomr などの写真共有サイトを見ていると、たまに見かける印象的な写真。 色彩感が強いのに、どこか柔らかな感じのする、ノスタルジックな画像。中心となる対象が、ふわっと、周りを押し退けてせまってくる。一度見たら、忘れられないインパクト。 Flickr: Photos tagged with lomolca LOMO L-CA - a photoset on Flickr Zooomr | 検索 lomo-lca フォト検索 オンラインアルバムZorg どこのメーカーのカメラを使うと、こんな綺麗な画像が撮れるのだろう? 写真の周辺が黒くぼやけているものが多い。何か特殊な加工をしてるのだろうか。 2. Picnik の LOMO フィルタ 「ITmedia Biz.ID:Webページをキャプチャして、加工もWebで行う 」に、画像を加工するサービスPicnik が紹介されて

    GIMP で Lomo 風のフィルタをかける
    kzfm
    kzfm 2008/09/09
  • 1