takafumi blog

日々の勉強メモ

Haskell

【Haskell】 Project Euler Prblem4 を少し考えて解いてみた

環境 ghc 7.10.2 CentOS7.0 Problem 4 - PukiWiki Euler problems/1 to 10 - HaskellWiki だと結構力技なので、少し考えてみた。 1 main :: IO () 2 main = print $ head [(x, y, z) | x <- palindromes dgt, y <- factors dgt, let z = x `div` y, x `mod` …

【Haskell】 Project Euler Prblem2を読み間違えて解いてみた

環境 ghc 7.10.2 CentOS7.0 Problem 2 - PukiWiki の 「数列の項の値が400万以下の, 偶数値の項の総和を求めよ.」 を 「数列の項が400万以下の, 偶数値の項の総和を求めよ。」 と間違って解いてみた。 1 main :: IO () 2 main = print . sum' .filter even $…

【Haskell】 stack で ghc-modがインストールできない

環境 ghc 7.10.2 CentOS7.0 Haskellのパッケージ管理をstackにしてみた。 順調にインストールはし、Yesodもcabal hellせずナイスと思ったら、ghc-modがインストールできない。 $ stack install ghc-mod While constructing the BuildPlan the following exce…

【Haskell】 HsExifを使い、Exif情報で画像を整理するスクリプトを書いてみた

環境 ghc 7.8.3 CentOS7.0 HaskellでExif情報を使って、写真を整理するスクリプトを書いてみた。 github.com ・・・まだExif撮影日時ごとにディレクトリ作成して、画像をコピーするだけ。 Exif取得自体はHsExifといモジュールを使ったが、そもそもHaskell自…

【Haskell】 H本 13.6のチェスの演習問題

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第13章 メモ 13.6のチェスの演習問題をやってみた。 import Control.Monad type KnightPos = (Int, Int) -- (横, 縦) moveKnight :: KnightPos -> [KnightPos] moveKnight (c,r) = do (c', r') <…

【Haskell】 モナド簡単まとめ

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第13章 メモ 簡易Monadまとめ Monad(モナド) ▽定義 class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b x >> y = x >>= \_ -> y fail :: Str…

【Haskell】 ファンクター、アプリカティブの簡単まとめ

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第10,11章 メモ ファンクター、アプリカティブのとりあえず、最低限必要そうな部分をまとめ。 でも間違いなく、こちらの方が、はるかに分かりやすいです。 なので、以下は自分用のまとめです。 F…

【Haskell】 言葉の定義まとめ(型クラス、型コンストラクタ、値コンストラクタ、型引数など)

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」第07章 メモ この辺で、言葉の定義がよくわからなくなっていたので、まとめてみた。 言葉 説明 例 型変数 関数の明示的な型宣言に使われるどんな型も取り得る事を意味する head :: [a] -> a この…

Haskellまとめ

Haskellを勉強したときの記事まとめ ■すごいHaskellたのしく学ぼう 一度通読したけどしばらく放置して読書会に行ったら、さっぱり忘れていたので再読。 今度は忘れないようメモ。 型クラス、型クラス制約、型注釈など 言葉の定義まとめ(型クラス、型コンス…

Haskell 型クラス、型クラス制約、型注釈など

環境 ghc 7.8.3 CentOS7.0 「すごいHaskellたのしく学ぼう!」メモ 読了:第02章まで 型変数 ghci> :t head head :: [a] -> a このaを型変数と呼ぶ。 どんな型も取り得るという事を意味する。 型クラス 何らかの振る舞いを定義するインターフェース。 具体的…

CentOS7にHaskell Platform最新版をインストール

環境 CentOS 7.0 haskell platform 2014.2.0.0 基本的に公式のマニュアルに従って実行する。 Haskell Platform for Linux最新のhaskell platformを公式から取得 $ cd / $ wget https://www.haskell.org/platform/download/2014.2.0.0/haskell-platform-2014.…

CentOS6.5にHaskell Platformをyumインストール

環境 CentOS 6.5 HaskellPlatform2.11.6 yumでのインストールは簡単。yumリポジトリをインストール $ cd /usr/src/redhat/RPMS $ wget http://sherkin.justhub.org/el6/RPMS/x86_64/justhub-release-2.0-4.0.el6.x86_64.rpm $ rpm -ivh justhub-release-2.0-…