読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

Haskell

モンテカルロ法

コンピュータ囲碁のモンテカルロツリー探索に興味津々でしたが、コーディングがわからずほったらかしでした。そもそもモンテカルロ法さえ組んだことがない。 西尾さんという方のブログの記事「Rediscover the Monte Carlo」を読ませていただいて、これならHa…

乱数の使い方

Haskellで乱数ライブラリを使うのに一番簡単な方法を考えてみました。 import System.Random main = do generator <- getStdGen let randoms = (randomRs (1, 6) generator) :: [Int] -- 例:1から6までの整数の乱数列 -- 乱数列randomsを使ってしたい処理を…

世紀の発明?

私は、Haskellの$演算子や.演算子がきらいです。だって読む順番が逆だから。 数学ではそう書く?数学で函数合成なんてだらだら続けないでしょう?でもプログラミングだと必要な処理は書き下します。 Project Eulerの問題4を例にします。 A palindromic numbe…

パターン

Project Eulerを題材にHaskellのプラクティスパターンを少し書き出しました。 https://sites.google.com/site/nextliteracy/haskell/projecteuler プログラムがやたら短く書けます。 パターンが色々出てくるだろうと期待していたら、少しのパターンで応用で…

Emacsのhakell-mode

Carbon Emacsのhaskellモードで、C-c C-lしてカレントソースをghciに読み込むと、ghciがなぜか最初にcd ~/.cabalを実行します。 haskell-modeを最新版の2.7.0にしたら直りました。 http://projects.haskell.org/haskellmode-emacs/

虎の巻

というわけで、Haskell CheatSheet日本語版「Haskell虎の巻」、公開します。 Baileyさんに許可をいただきました。

CheatSheet

http://cheatsheet.codeslower.com/CheatSheet.pdf 素晴らしい。訳そう。

Running Haskell GHC on Snow Leopard

http://obvioushints.blogspot.com/2009/09/running-haskell-ghc-on-snow-leopard.html なるほど、うまくいきました。

マルペケ

Haskellでマルペケの結果を数え上げてみました。 --- Tic-Tac-Toe -- by ICHIKAWA, Yuji -- 2009 Copyleft ICHIKAWA, Yuji -- initial version 2009/02/11 -- refactoring 2009/02/16 module Main where import Ix import qualified Data.Map as Map import …

「なぜ関数プログラミングは重要か」

http://www.sampou.org/haskell/article/whyfp.html Haskellでパターンの利用や設計を意識してから、読み直したら頭の中に染み込みました。 思考の問題なので言語に本質的に制約されるわけではありませんが、手続き型では具象(機能)のライブラリが多く提供…

Haskellの欠点?

関数型なら更に単体テストが有効だろうと、これを機会に単体テストの習慣を身につけようと思ったのですが、ファイルから関数への入力データを読み込んで結果を確認するだけのことがHUnitでできない。 ファイルから読み込もうとすると、IOモナドの世界に入り…

詰め碁プログラム

「詰碁を解く Haskell プログラム」で公開されているHaskellソースコードを、勉強のため書き直してみました。(主に名前変更のリファクタリングで、アルゴリズムは全く同じです。) http://sites.google.com/site/nextliteracy/haskell 紫藤さんに感謝。