このサイトについて
このサイトは2014年11月にオーム社より発刊されました『関数プログラミング 珠玉のアルゴリズムデザイン』を楽しむためのサポートサイトです.
原書カバーの Puzzle no. 234 は ALGORITHM の 9 文字を使った Sudoku パズルになっています.
演算子記号とASCII文字列との対応
本書の記号 | HaskellのASCII文字 |
---|---|
≤ | <= |
≥ | >= |
∨ | || |
∧ | && |
⋅ | . |
≠ | /= |
∈ | `elem` |
∉ | `notElem` |
⊑ | `isPrefixOf` |
div | `div` |
mod | `mod` |
min | `min` |
max | `max` |
knows | `knows` |
演算子以外の構文記号の一部については,GHCの言語拡張UnicodeSyntax
を有効にするとソースコード中に記述可能です. 詳細については,GHCユーザーガイド 9.3.1 Unicode syntaxをご覧ください.
演算子に関しては,Unicodeの記号が使えますので,たとえば,1章については,以下のような定義モジュールをインポートすれば,そのままコードで表現できます.
{-# LANGUAGE UnicodeSyntax #-}
module Operators where
import qualified Data.List
infixr 5 \\
(\\) ∷ Eq a ⇒ [a] → [a] → [a]
(\\) = (Data.List.\\)
infix 4 ∈, ∉
(∈) ∷ Eq a ⇒ a → [a] → Bool
(∈) = elem
(∉) ∷ Eq a ⇒ a → [a] → Bool
(∉) = notElem
infixr 2 ∨
(∨) ∷ Bool → Bool → Bool
(∨) = (||)
infixr 3 ∧
(∧) ∷ Bool → Bool → Bool
(∧) = (&&)
infix 4 ≤, ≥
(≤) ∷ Ord a ⇒ a → a → Bool
(≤) = (<=)
(≥) ∷ Ord a ⇒ a → a → Bool
(≥) = (>=)
関連記事
読書メモなどを書いていただいた記事など,見つけたもの,教えてもらったもの.
- 【随時追記予定】読書メモ:関数プログラミング 珠玉のアルゴリズムデザイン
- 「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる まとめ
- 珠玉のアルゴリズムデザイン19章の数独ソルバー読みました
- 1. The smallest free number (最小自然数) 関数プログラミング 珠玉のアルゴリズムデザイン
質問・感想・誤りの指摘などについて
この翻訳書の内容に関するご質問,ご感想,誤りのご指摘などございましたら,
- githubにイシューを開いていただくか,
- twitter で @nobsun 宛にハッシュタグ #pfadj をつけて呟いていただくか,
- chaton haskell-jaでコメントを投稿していただくか,
- haskell-jp at googlegroups dot comに参加していただいてメッセージを投稿いただく.
などしていただければ幸いです. ご指摘などの場合は件名などにページ番号を入れていただけると嬉しいです. 十分な回答,即座の返信はできないことがあることを予めご了承下さい.