Caution
お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。
辞典
- トップページ
- 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 / appendFile | readFile・writeFile・withFileによるファイル入出力。 |
| 関数定義 / 型シグネチャ(::) | 型シグネチャ・パターンマッチ・ガード・where句による関数定義。 |
| 関数合成(. 演算子) | (.)演算子で関数をパイプライン状に合成する方法。 |
| getLine / getContents / interact | getLine・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 / where | let式・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 / span | zip・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パターン。 |