2011-02-01から1ヶ月間の記事一覧

liftMを学ぶ(モナドに関数を適用する)

liftM の使い方が分からなかったので調べてみました。 ghci> :m + Control.Monad ghci> :t liftM liftM :: (Monad m) => (a1 -> r) -> m a1 -> m r liftM は a1 を引数に r を帰す関数と モナドのインスタンス a1 を引数にとり、 モナドの r を返す。 つまり…

「ウォリス積」、「マダヴァの公式」による円周率

「やさしくわかる数学のはなし77」という本に「ウォリス積」、「マダヴァの公式」による円周率の計算式が載っていましたのでやってみました。 ウォリス積 import Ratio -- ウォリス積 -- 2・2・4・4・6・6・8・8... -- 2 pi = ----------------------- -- …

Haskell から外部コマンドを実行してみる

本物のプログラマはHaskellを使う / 第5回 ListではなくMaybeを使う意義に runInteractiveProcess関数を使った例があります。 runInteractiveProcessは,実行するファイルの名前とコマンドライン引数を渡し,別のプロセスでそのコマンドを実行する関数です。…

iterateを使ってみる。

iterate を検索しましら、「iterateでバブルソート 」があったので自分でもバブルソートをしてみようと思いましたら、ちょっと躓きました。まず、自分でやってみます。 toRightEdge [x] = [x] toRightEdge (x:y:ls) | x > y = y:toRightEdge (x:ls) | otherw…

catch で例外を捕捉してみる。

第25回 Haskell流の例外処理を学ぶ を参考に例外を捕捉してみます。haskellでの例外処理は catch (例外が発生する可能性のある関数) (例外が起きた場合に実行する関数) という書き方をします。 「ファイルを開いて表示する」という処理を実行しようとしたと…

Graphics.UI.WX.Dialogs ダイアログボックス見本

ダイアログボックス 【dialog box】(IT用語辞典) 「ダイアログ」とは「対話」と言う意味で、 GUI 操作画面でユーザに何らかの入力を促すために表示されるポップアップウインドウのことです。 「モーダルダイアログ」(modal dialog) : 表示中はウインドウの…