Real World Haskell ã®å 容ãå¤ããªã£ã¦ããã®ã§ãã©ããå¤ããã¨ããããã«å¤ããæ°ãããã®ã¯ä½ã¨ããã¾ã¨ãããã¨æãã

Real World Haskellâ宿¦ã§å¦ã¶é¢æ°åè¨èªããã°ã©ãã³ã°
- ä½è : Bryan O'Sullivan,John Goerzen,Don Stewart,å±±ä¸ä¼¸å¤«,伿±åå©,æ ªå¼ä¼ç¤¾ã¿ã¤ã ã¤ã³ã¿ã¼ã¡ãã£ã¢
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã¸ã£ãã³
- çºå£²æ¥: 2009/10/26
- ã¡ãã£ã¢: 大忬
- è³¼å ¥: 8人 ã¯ãªãã¯: 245å
- ãã®ååãå«ãããã° (76ä»¶) ãè¦ã
1ç« å§ãã¾ããã
ä»ã§ãéç¨ããã
2ç« åã¨é¢æ°
ä»ã§ãéç¨ããã
3ç« åãå®ç¾©ãã颿°ãåç´åãã
ä»ã§ãéç¨ããã
4ç« é¢æ°ããã°ã©ãã³ã°
ghc ã« --make ãªãã·ã§ã³ã¯ããä¸è¦ã
5ç« ã©ã¤ãã©ãªãæ¸ã
5.14ç¯ã§ã¯ã"runghc Setup build" ã®ããã« Setup.hs ãå®è¡ãã¦ããããç¾å¨ã§ã¯ "cabal" ã³ãã³ãã使ãã®ãä¸è¬çã ã
% cabal configure % cabal build % cabal install
ãªãã以åããèµ·ã£ã¦ããã©ã¤ãã©ãªã®ä¾åå°çã¯ãcabal ã sandbox ããµãã¼ããããã¨ã«ãã解決ãã¦ãããä½¿ãæ¹ã¯ã@ma0e さんのブログãåç §ã
6ç« åã¯ã©ã¹ã使ã
6.11ç¯ã® NoMonomorphismRestriction ã¯ãGHC 7.8 ããã¯ããã©ã«ãã¨ãªã£ã¦ããã®ã§ãæå®ããªãã¦ããã
7ç« å ¥åºå
ä»ã§ãéç¨ããã
8ç« å¹ççãªãã¡ã¤ã«å¦çãæ£è¦è¡¨ç¾ããã¡ã¤ã«åãããã³ã°
ä»ã§ãéç¨ããã
9ç« å ¥åºåäºä¾ç ç©¶
9.9ç¯ã¯èªã¾ãã«ãconduit 㨠filesystem-conduitã©ã¤ãã©ãªãçè§£ããæ¹ãããã¨æãããã
9.10ç¯ã®ã¬ã¤ã¢ã¦ãã¹ã¿ã¤ã«ããããJohan のレイアウトスタイルã®ã»ããããã ããã
10ç« ã³ã¼ãäºä¾ç ç©¶
ä»ã§ãéç¨ããã
11ç« ãã¹ãã¨å質ä¿è¨¼
QuickCheck ã¯ãã¼ã¸ã§ã³ã1ãã2ã«ãªã£ããã ãããä»ã§ãéç¨ã§ããããgenerate 颿°ã¯ãªããªã£ããã¾ããTest.Quickcheck.Batch ã¢ã¸ã¥ã¼ã«ããªããªã£ãããã¹ãã䏿¬å¦çãããå ´åã¯ãHaskellの単体テスト最前線ãåç §ã®ãã¨ã
12ç« ãã¼ã³ã¼ãèªè
å試ããéãã§ã¯ããã®ç« ã®ã³ã¼ãã¯ã¡ããã¨åããªãããã¼ã³ã¼ãã®ã³ã¼ãã¯ã¹ã«ã¼ãã¦ãé åããªã¹ãå å 表è¨ãããã³ Data.Map ãåå¼·ããã®ãããã
13ç« ãã¼ã¿æ§é
ä»ã§ãéç¨ã§ããã
å·®åãªã¹ããçè§£ããããByteString ãå¹çããé£çµãã blaze-builder ãåå¼·ãããã
14ç« ã¢ãã
ä»ã§ãéç¨ã§ããã
15ç« ã¢ããã使ã£ãããã°ã©ãã³ã°
- liftM ã¯å¿ã㦠<$> ã使ã
- ap ã¯å¿ã㦠<*> ã使ã
- MonadPlus ã¯å¿ã㦠Alternative ã使ã
- mplus ã¯å¿ã㦠<|> ã使ã
- mzero ã¯å¿ã㦠empty ã使ã
15.8ç¯ã§ã¯ãåã¯ã©ã¹ã使ããã¦ããããæè¿ã§ã¯ Free ã¢ããã Operational ã¢ããã®æ¹ããããããããªãã
16ç« Parsec ã使ã
Text.ParserCombinators.Parsec ã¯ä½¿ããªãã代ããã«ã
import Text.Parsec
ã¨ãããå ¥åã®åããStringãByteStringãText ããé¸ã¹ãããã¨ãã° String ã®å ´åã¯ã以ä¸ã importã
import Text.Parsec.String
Applicative ã¹ã¿ã¤ã«ãå°å ¥ããå¾ã«ãliftA2 ãªã©ã使ã£ã¦ããã®ã¯ãä¿®æ£ãã¹ã ã¨æãããã(Bryan 㯠RWH å·çæã« Applicative ã¹ã¿ã¤ã«ãæãã¦ããã£ãã¨æãããã)
17ç« Cã¨ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹FFI
ä»ã§ãéç¨ããã
18ç« ã¢ãã夿å
@objectxplosive ããã@khibinoããã¨ã®è°è«ããï¼mtl ãä¾åãã¦ãã transformersãåå¼·ããããããã«ã¯ MaybeT ãå®ç¾©ããã¦ããã
19ç« ã¨ã©ã¼å¦ç
ãã®ç« ã¯èªã¾ãªãã¦ããã以ä¸ãèªããã
20ç« Haskellã®ã·ã¹ãã ããã°ã©ãã³ã°
æéã«é¢ããã©ã¤ãã©ãªã«ã¤ãã¦ã¯ã以ä¸ãåç §ã
21ç« ãã¼ã¿ãã¼ã¹ã使ã
@khibinoããããï¼ä»ã§ãéç¨ããã
22ç« è¦æ¨¡ã®å¤§ããä¾
http-client ã xml-conduit ã©ã¤ãã©ãªãä½¿ãæ¹ãããã¨æãããã
23ç« gtk2hsã使ã£ãGUIããã°ã©ãã³ã°
@ma0eさんのブログの後半ãåç §ã
24ç« ä¸¦è¡ãã«ãã³ã¢ããã°ã©ãã³ã°
ç´ ç´ã« Parallel and Concurrent Programming in Haskellãèªãæ¹ãããããªãããã®æ¬ã¯å°æ¥ç¿»è¨³ãããäºå®ã
25ç« ãããã¡ã¤ãªã³ã°ã¨æé©å
@ma0eさんのブログの前半ãåç §ã
26ç« é«åº¦ãªã©ã¤ãã©ãªè¨è¨
ST ã¢ããã ãèªãã°ããã
27ç« ã½ã±ãã㨠syslog
ä»ã§ã¯ãNetwork.Socket ã§ã¯ãªããNetwork.Socket.ByteString ã使ãã®ãæ®éã
sClose ã®ä»£ããã« Network.Socket.close ã使ããã
28ç« ã½ããã¦ã§ã¢ã»ãã©ã³ã¶ã¯ã·ã§ãã«ã»ã¡ã¢ãª
ä»ã§ãéç¨ããããParallel and Concurrent Programming in Haskell ãèªãæ¹ãããã