言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Haskell辞典

Haskell辞典 一覧ページ

初心者向け: 概要と特徴、学習順ガイド純粋関数型言語Haskellの全体像と学習順の案内。
【環境構築】Haskellの開発環境GHCのインストールとREPLの使い方。
Cabal / Stack / Hackage(パッケージ管理)CabalとHackageによるパッケージ管理とビルド手順。
case ... of(パターン選択式)値のパターンを列挙して式を選ぶ構文。
カリー化(部分適用)全関数が1引数の関数に変換される仕組みと部分適用。
data(代数的データ型・直和型・直積型)dataキーワードで定義する直和型・直積型・再帰型。
deriving(型クラスの自動導出)deriving句でShow・Eq・Ordなどのインスタンスを自動導出。
Either モナド(エラー伝播)Leftが返った時点で処理を止めるモナド連鎖。
Either 型(Right / Left)成功値Right・エラー値Leftで結果を表す型。
error / undefined(実行時例外)実行時にプログラムを中断するerrorとプレースホルダのundefined。
Control.Exception(IO例外処理)throw・catch・tryによるIO例外の投げ方と捕捉。
readFile / writeFile / appendFilereadFile・writeFile・withFileによるファイル入出力。
関数定義 / 型シグネチャ(::)型シグネチャ・パターンマッチ・ガード・where句による関数定義。
関数合成(. 演算子)(.)演算子で関数をパイプライン状に合成する方法。
getLine / getContents / interactgetLine・getContents・interactによる標準入力読み込み。
ガード(|)による条件分岐(|)で条件を列挙しotherwiseでデフォルトを定義する分岐。
openFile / hGetLine / hClose(ハンドルIO)openFile・hGetLine・hCloseによるハンドルを使ったI/O。
高階関数(map / filter / foldr)map・filter・foldr・foldlによるリスト処理の基本。
if-then-else(条件式)then・elseが必須で同型を返す式としての条件分岐。
不変性(イミュータブル) / 参照透過性束縛後に値を変更できない不変性と参照透過性の仕組み。
IO モナド(副作用の管理)副作用をIOアクションとして表現するモナドの仕組み。
ラムダ式(\ -> 無名関数)\x -> 式の形で書く無名関数(ラムダ式)。
遅延評価(Lazy Evaluation)必要になるまで評価を遅らせる仕組みと無限リストの扱い。
let / wherelet式・where節でローカル変数や関数を定義する方法。
リストの基本(: 演算子 / [])コンス演算子(:)とhead・tail・takeなどの基本リスト操作。
リスト内包表記[f x | x <- xs, pred x]の形でリストを生成する内包表記。
map / filter / foldl / foldr重複除去・ソート・グループ化などData.Listの主要関数。
リストモナド(非決定的計算)リストを非決定的計算として扱うモナドの使い方。
範囲表記([1..10] / 無限リスト)[1..10]やcycle・repeatによる範囲表記と無限リスト生成。
zip / zipWith / take / drop / spanzip・zipWith・splitAt・spanによるリスト操作関数。
Maybe モナド(連鎖とdo記法)Nothingで処理がスキップされるdo記法のMaybeモナド連鎖。
Maybe 型(Just / Nothing)Just aまたはNothingで値の有無を表すオプショナル型。
モジュール定義 / import(名前空間)moduleとimport・qualified・hidingによる名前空間管理。
モナドの概念(>>= バインド / do記法)(>>=)とreturnを持つ型クラスとdo記法の脱糖の仕組み。
newtype(型安全なラッパー)ランタイムコストゼロの1フィールドラッパー型定義。
パターンマッチの基本(関数定義)リテラル・タプル・コンストラクタへのマッチと_・@パターン。
リストパターンマッチ(x:xs)[]と(x:xs)でリストを再帰的に分解するパターンマッチ。
タプル・代数的データ型のパターンマッチ(a, b)の形でタプルを分解するパターンマッチ。
Text.Printf(書式付き出力)Text.PrintfによるC風書式出力とData.Textの使い分け。
putStrLn / putStr / print(出力)putStrLn・print・hPutStrLnによる各種出力関数の使い分け。
qualified インポート(名前衝突の回避)import qualified ... asで名前衝突を避けるインポート手法。
レコード構文(フィールド名付き)フィールド名付きでコンストラクタを定義するレコード構文。
再帰関数(末尾再帰・アキュムレータ)ループのないHaskellでの繰り返しと末尾再帰への変換。
seq / $!(強制評価・スペースリーク対策)seq・deepseqで評価を強制しスペースリークを防ぐ方法。
show / read(値と文字列の変換)showで文字列化・readでデータを復元するShow/Read型クラス。
State モナド(状態を持つ純粋計算)get・put・modifyで状態を持つ純粋計算を書くStateモナド。
文字列([Char]) / words / lines[Char]のエイリアスであるStringとwords・linesの基本操作。
Text / ByteString(高性能文字列)高性能テキストのData.Textとバイナリ向けData.ByteString。
タプル(固定長の異型値の組)異なる型を固定長でまとめるタプルとユニット型(())。
type(型エイリアス)type・newtype・dataの違いと用途の使い分け。
型推論(Hindley-Milner)コンパイラが型を自動推論するHindley-Milner型推論の仕組み。
型クラス(class / instance)class・instanceで定義するアドホック多相の型クラス。
Eq / Ord / Show / Read 型クラス等値比較のEqと順序比較のOrdの実装方法。
Functor / Applicative(fmap / <*>)コンテナ内の値に関数を適用するFunctorとfmap。
Num / Integral / Fractional / Floating 型クラスNum・Integral・Fractional・Floatingの型クラス階層。
基本型(Int / Double / Char / Bool)Int・Double・Bool・Char・Stringの基本型の特徴と使い分け。
when / unless / forM_(モナド制御)when・unless・forM_によるモナド文脈の制御フロー関数。
ワイルドカード(_) / as-パターン(@)不要な値を無視する_とxs@(x:_)形式のasパターン。