2012-02-15から1日間の記事一覧

Haskell第3回 mapからモナドを理解する

mapという関数がある Hoogleで調べると map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn] map f [x1, x2, ...] == [f x1, f x2, ...] とある リスト[]のすべての要素にfを働かせますよ、という関数である "mapは便利なので,リスト以外の自分の使ったデ…

Haskellの調べものをする

GCHiコマンド(:type (略して:t), :info (略して:i)とか) Hoogle, Hayoo (Haskellのコード探し) Haskell98の中身の確認 パスのこと、後付けパッケージ・モジュールとか

Haskell第2回 多相性(ポリモーフィズム)への理解を深める

型 Haskellは型付きλ計算(Wiki)に基づく関数型プログラミング言語 関数の入出力の型をかっちり決めている、と言う意味 前の記事で作成した、"repeated"関数にも型がついている それを表示させるためのコマンドが":type" Prelude> let repeated f n = \x -> (…

Haskellの特徴

関数型プログラミング言語 「そもそも関数型プログラミングって」(古典的説明がこちら) そこで挙げられている「仕事を抽象化しておくことについて」の例として出てくる、「再帰関数」をパターン化すること 初期値と2項演算による再帰関数は"reduce"と呼んで…

Haskellの構成要素

値 演算子 関数 関数の定義 環境 環境のスコープ 型 構成子 クラス 型クラス 型構成子クラス モジュール

パス、モジュールを取ってきて使う

「GHCはインストールされたパッケージだけを認識します」(こちら) インストールされてGHCに認識されるパッケージの一覧は、次のようにして、確認できます コマンドプロンプトで ghc-pkg list と打つ 後からパッケージを取り込みたいときは、「取ってきて、イ…

Haskell第1回 関数型プログラミングの世界へようこそ

処理の繰り返しのHaskell的表記とその使用 let repeated f n = \x -> (iterate f x)!!n repeated (+2) 3 5 repeated (+3) 3 5 3+2+2+2+2+2 5+2+2+2 5+3+3+3 let repeated f n = \x -> (iterate f x)!!n let repeated : "repeated"という名前の関数を作る f,n…

Haskell練習帳

目次 インストール・起動・使い始め Haskellを学ぶときの調べもの Haskellを学ぶときに使うコマンドとか ペースメーカーは『本物のプログラマはHaskellを使う』(そんなに気張らなくてもよいと思うけれど…)こちら 0. そもそもこのシリーズ記事を読むための基…

Haskell 98

Haskell 98で提供しているものを眺める こちら

Haskellのコード探し

Haskellの「すでに入っている」関数のコードを見る Hoogle(こちら)や Hayoo!(こちら)

GCHiコマンド

GCHiコマンド 2. 型とその多相性で、作った関数の型をみたり、型の情報を覗いたりしている 使っているのは":"で始まるコマンド それらはGCHiコマンドと言うものらしく、こちらを参照 :type \f n -> repeated f n 12 :info Num *Main> :type \f n -> repeated…

コンパイル

誰かがコピーできるように置いてくれているソース群があったとする それを手元にとってきてどうするか こちらを使うことを例にとる このページではlfit2.lzhなるHaskellソースファイルを固めたものを紹介されている 手元にダウンロードして解凍するとMain.hs…

クラス・インスタンス

型クラスは"型クラス(type class)は相異なるデータ型に共通したインターフェイスを持つ関数を定義する。"(Wiki) クラスは、「こういうことをやりたい」という「抽象的な仕事」に対して定義する 「抽象的な仕事」は型に依存しないので(しないこともあるので…

第0回 用語に慣れる

目次 Haskellの構成要素 Haskellの特徴 クラス・インスタンス コンパイル