YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Haskell

GHCiを使って学ぶ (はじめて編)

はじめに あけましておめでとうございます。正月休みを使って手探りでHaskellの学び方を模索しているわけですが、「これは便利だ!」と思ったので自分へのメモと同時に、共有です。もっと便利な方法を教えてください! Haskellの対話型実行環境GHCi Haskell…

Mac OS X 10.6 でcabal-installを設定する

動機 HaskellをむりやりSnow Leopardで動くようにしたのはいいけれど、cabalがないと面倒なので設定した。 前提 Haskellでは同じ発音をする、"Cabal"と"cabal"があります。2者は大きく違います。注意。 cabalコマンドの使い方 - あどけない話 Cabal Haskell…

「プログラミングHaskell」購入

プログラミングHaskell作者: Graham Hutton,山本和彦出版社/メーカー: オーム社発売日: 2009/11/11メディア: 単行本(ソフトカバー)購入: 13人 クリック: 478回この商品を含むブログ (115件) を見る id:Voluntas と id:aodag からの推薦があったんで買って…

Snow LeopardにGHC 6.10.4入れた

動機 MacPortsでGHC入れようと思ったらまだSnow Leopard対応してないのね。 $ sudo port install ghc Password: Warning: Skipping upgrade since p5-locale-gettext 1.05_0 >= p5-locale-gettext 1.05_0, even though installed variants "+universal" do n…

ウィンドウマネージャxmonad

xmonad | the tiling window manager that rocks ついに来たよ!Haskellで書かれたX Windowのウィンドウマネージャ。いやぁ、俺もこういう風にHaskellでいろいろ遊んでみたいなぁ。まだまだ修行が足りないですね。精進精進。

haskell-mode for Emacs

Haskellを書くときはEmacs(Meadow)使ってるんですが、doの次の行のインデントがうまく合わないなぁと思っていたら大きな間違いだった。 main = do cs <- getContents putStr cs ここで2行目でTabを押すと main = do cs <- getContents putStr cs さらにもう…

ふつうのHaskellプログラミング 第8章 練習問題

lrstrip.hs lrstrip :: String -> String lrstrip = rstrip . lstrip tail2.hs main = do cs <- getContents putStr $ lastNLines 10 cs lastNLines :: Int -> String -> String lastNLines n = unlines . reverse . take n . reverse . lines fgrep.hs fgre…

ふつうのHaskellプログラミング 第8章 練習問題

たしかにポイントフリースタイルで書くとすっきりする気がする。ただ綺麗に書ける自信があまりない。 lstrip.hs lstrip :: String -> String lstrip = dropWhile (== ' ') rstrip.hs rstrip :: String -> String rstrip = reverse . lstrip . reverse

ふつうのHaskellプログラミング 第7章 練習問題

fold.hs foldCol = 61 main = do cs <- getContents putStr $ unlines $ map foldLineAt $ lines cs foldLineAt :: String -> String foldLineAt cs = case snd (splitAt foldCol cs) of [] -> cs (c1:cs1) -> if length cs1 >= (foldCol - 1) then foldLine…

ふつうのHaskellプログラミング 第4章 練習問題

sort.hs import System import List main = do cs <- getContents putStr $ sortLines cs sortLines :: String -> String sortLines cs = unlines $ map sort $ lines cs uniq.hs import System import List main = do cs <- getContents putStr $ groupLine…

ふつうのHaskellプログラミング 第3章 練習問題

expandA関数の定義の部分で"expandA"を"expadnA"とミスタイプしちゃったのにコンパイル通っちゃった。どうしてだろう?とりあえず自分の解答。 expandA.hs main = do cs <- getContents putStr $ expand cs expand :: String -> String expand cs = map expa…

ふつうのHaskellプログラミング 第2章 練習問題

自分が作ってみた解答。こんな感じでいいんでしょうか? countbyte.hs main = do cs <- getContents print $ length cs countword main = do cs <- getContents print $ length $ words cs

書籍購入

書籍その2 - YAMAGUCHI::weblogにあるとおり、Haskellの本を買いました。研究会直前にも関わらず買いました。まあ知ったこっちゃありませんよね、そんなのは。いよいよ夏休みまでの暇つぶしができそうです。

インストール

nvaca先生に相談した結果、GHCを入れるべきであるということになったので速攻でインストールしました。各OSで容易に利用できるようだけど、今はWindows使ってるんでとりあえずバイナリをゲッツ。 The Glasgow Haskell Compiler 色気を出してソースコードをma…

書籍その2

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 285回この商品を含むブログ (333件) を見る こんな…

始めてみようかと

研究会前とか含めいろんな締切が近いから現実逃避にいろいろ始めたくなるお年頃。というわけで前々から気になっていたHaskellを始めてみようかと。 A Gentle Introduction to Haskell, Version 98 About Haskell 結城浩のHaskell日記 - haskell The Glasgow …