-- ·|­û / µù¥U -- ¡@
¡@±b¸¹¡G
¡@±K½X¡G
¡@ | µù¥U | §Ñ°O±K½X
3/26 ·s®Ñ¨ì¡I 3/19 ·s®Ñ¨ì¡I 3/14 ·s®Ñ¨ì¡I 12/12 ·s®Ñ¨ì¡I
ÁʮѬyµ{¡EQ & A¡E¯¸°È¯d¨¥ª©¡E«ÈªA«H½c
¢x 3ds Max¢x Maya¢x Rhino¢x After Effects¢x SketchUp¢x ZBrush¢x Painter¢x Unity¢x
¢x PhotoShop¢x AutoCad¢x MasterCam¢x SolidWorks¢x Creo¢x UG¢x Revit¢x Nuke¢x
¢x C#¢x C¢x C++¢x Java¢x ¹CÀ¸µ{¦¡¢x Linux¢x ´O¤J¦¡¢x PLC¢x FPGA¢x Matlab¢x
¢x Àb«È¢x ¸ê®Æ®w¢x ·j¯Á¤ÞÀº¢x ¼v¹³³B²z¢x Fluent¢x VR+AR¢x ANSYS¢x ²`«×¾Ç²ß¢x
¢x ³æ´¹¤ù¢x AVR¢x OpenGL¢x Arduino¢x Raspberry Pi¢x ¹q¸ô³]­p¢x Cadence¢x Protel¢x
¢x Hadoop¢x Python¢x Stm32¢x Cortex¢x Labview¢x ¤â¾÷µ{¦¡¢x Android¢x iPhone¢x
¥i¬d®Ñ¦W,§@ªÌ,ISBN,3dwoo®Ñ¸¹
¸Ô²Ó®ÑÄy¤ÀÃþ

Haskell½ì¾Ç«ü«n

( ²Åé ¦r)
§@ªÌ¡G[´µ¬¥¤å¥§¨È]Ãþ§O¡G1. -> µ{¦¡³]­p -> ºî¦X
ĶªÌ¡G
¥Xª©ªÀ¡G¤H¥Á¶l¹q¥Xª©ªÀHaskell½ì¾Ç«ü«n 3dWoo®Ñ¸¹¡G 37442
¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I

¡i¯Ê®Ñ¡j
¡i¤£±µ¨ü­qÁÊ¡j

¥Xª©¤é¡G1/1/2014
­¶¼Æ¡G301
¥úºÐ¼Æ¡G0
¯¸ªø±ÀÂË¡G
¦L¨ê¡G¶Â¥Õ¦L¨ê»y¨t¡G ( ²Åé ª© )
¡i¤£±µ¨ü­qÁÊ¡j
ISBN¡G9787115335593
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç
(²Åé®Ñ¤W©Ò­z¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, ­YŪªÌ»Ý­n½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ)
§@ªÌ§Ç¡G

ĶªÌ§Ç¡G

«e¨¥¡G

¤º®e²¤¶¡G

¡@¡@¡mHaskell½ì¾Ç«ü«n¡n¬O¤@¥»Á¿¸ÑHaskell³oªù¨ç¼Æ¦¡½sµ{»y¨¥ªº¤Jªù«ü«n¡A»y¨¥³q«U©öÀ´¡A´¡¹Ï¥Í°Ê«ÕÀq¡A¥Ü¨Òµu¤p²M´·¡Aµ²ºc¦w±Æ¦X²z¡C®Ñ¤¤±qHaskellªº°ò¦ª¾ÃÑÁ¿°_¡A²[»\¤F©Ò¦³ªº°ò¥»·§©À©M»yªk¡A¤º®e¯A¤Î°ò¥»»yªk¡B»¼Âk¡BÃþ«¬©MÃþ«¬Ãþ¡B¨ç¤l¡Bapplicative ¨ç¤l¡Bmonad¡Bzipper¤Î©Ò¦³Haskell­«­n¯S©Ê©M±j¤j¥\¯à¡C
¡@¡@¡mHaskell½ì¾Ç«ü«n¡n¾A¦X¹ï¨ç¼Æ¦¡½sµ{¤ÎHaskell»y¨¥·P¿³½ìªº¶}µo¤H­û¾\Ū¡C
¥Ø¿ý¡G

²Ä1³¹¡@¦U´N¦U¦ì¡A¹w³Æ¡I¡@1
1.1¡@½Õ¥Î¨ç¼Æ¡@3
1.2¡@¤pªB¤Íªº²Ä¤@­Ó¨ç¼Æ¡@4
1.3¡@¦Cªí¤Jªù¡@6
1.3.1¡@«÷±µ¦Cªí¡@6
1.3.2¡@³X°Ý¦Cªí¤¤ªº¤¸¯À¡@8
1.3.3¡@´O®M¦Cªí¡@8
1.3.4¡@¤ñ¸û¦Cªí¡@8
1.3.5¡@§ó¦h¦Cªí¾Þ§@¡@9
1.4¡@±o¦{°Ï¶¡¡@11
1.5¡@§Ú¬O¦Cªí±À¾É¦¡¡@13
1.6¡@¤¸²Õ¡@16
1.6.1¡@¨Ï¥Î¤¸²Õ¡@16
1.6.2¡@¨Ï¥Î§Ç¹ï¡@17
1.6.3¡@§äª½¨¤¤T¨¤§Î¡@18

²Ä2³¹¡@¬Û«HÃþ«¬¡@20
2.1¡@Å㦡Ãþ«¬Án©ú¡@20
2.2¡@Haskellªº±`¨£Ãþ«¬¡@21
2.3¡@Ãþ«¬Åܶq¡@22
2.4¡@Ãþ«¬Ãþ¤Jªù¡@23
2.4.1¡@EqÃþ«¬Ãþ¡@24
2.4.2¡@OrdÃþ«¬Ãþ¡@24
2.4.3¡@ShowÃþ«¬Ãþ¡@25
2.4.4¡@ReadÃþ«¬Ãþ¡@25
2.4.5¡@EnumÃþ«¬Ãþ¡@27
2.4.6¡@BoundedÃþ«¬Ãþ¡@27
2.4.7¡@NumÃþ«¬Ãþ¡@28
2.4.8¡@FloatingÃþ«¬Ãþ¡@28
2.4.9¡@IntegeralÃþ«¬Ãþ¡@28
2.4.10¡@¦³ÃöÃþ«¬Ãþªº³Ì¦ZÁ`µ²¡@29

²Ä3³¹¡@¨ç¼Æªº»yªk¡@30
3.1¡@¼Ò¦¡¤Ç°t¡@30
3.1.1¡@¤¸²Õªº¼Ò¦¡¤Ç°t¡@32
3.1.2¡@¦Cªí»P¦Cªí±À¾É¦¡ªº¼Ò¦¡¤Ç°t¡@32
3.1.3¡@As¼Ò¦¡¡@34
3.2¡@ª`·N¡A­ï½Ã!¡@34
3.3¡@where¡H¡I¡@36
3.3.1¡@whereªº§@¥Î°ì¡@37
3.3.2¡@where¤¤ªº¼Ò¦¡¤Ç°t¡@38
3.3.3¡@where¶ô¤¤ªº¨ç¼Æ¡@38
3.4¡@let¡@39
3.4.1¡@¦Cªí±À¾É¦¡¤¤ªºlet¡@40
3.4.2¡@GHCi¤¤ªºlet¡@40
3.5¡@caseªí¹F¦¡¡@41

²Ä4³¹¡@§A¦n¡A»¼Âk¡@43
4.1¡@¤£¥i«äijªº³Ì¤j­È¡@43
4.2¡@§ó¦hªº´X­Ó»¼Âk¨ç¼Æ¡@45
4.2.1¡@replicate¡@45
4.2.2¡@take¡@45
4.2.3¡@reverse¡@46
4.2.4¡@repeat¡@46
4.2.5¡@zip¡@46
4.2.6¡@elem¡@47
4.3¡@§ÖÂI¡A±Æ§Ç¡I¡@47
4.3.1¡@ºâªk«ä¸ô¡@47
4.3.2¡@½s¼g¥N½X¡@48
4.4¡@»¼Âk¦a«ä¦Ò¡@49

²Ä5³¹¡@°ª¶¥¨ç¼Æ¡@50
5.1¡@¬_¨½¨ç¼Æ¡@50
5.1.1¡@ºIÂ_¡@52
5.1.2¡@¥´¦L¨ç¼Æ¡@53
5.2¡@¦A¨ÓÂI¨à°ª¶¥¨ç¼Æ¡@53
5.2.1¡@¹ê²{zipWith¡@54
5.2.2¡@¹ê²{flip¡@55
5.3¡@¨ç¼Æ¦¡µ{§Ç­û¤u¨ã½c¡@56
5.3.1¡@map¨ç¼Æ¡@56
5.3.2¡@filter¨ç¼Æ¡@57
5.3.3¡@¦³Ãömap»Pfilterªº§ó¦h¥Ü¨Ò¡@58
5.3.4¡@¬M®g±a¦³¦h­Ó°Ñ¼Æªº¨ç¼Æ¡@60
5.4¡@lambda¡@60
5.5¡@§éÅ|¯ÈÅb¡@62
5.5.1¡@³q¹Lfoldl¶i¦æ¥ª§éÅ|¡@63
5.5.2¡@³q¹Lfoldr¶i¦æ¥k§éÅ|¡@63
5.5.3¡@foldl1¨ç¼Æ»Pfoldr1¨ç¼Æ¡@64
5.5.4¡@§éÅ|ªº´X­Ó¨Ò¤l¡@65
5.5.5¡@¥t¤@­Ó¨¤«×¬Ý§éÅ|¡@66
5.5.6¡@µL­­¦Cªíªº§éÅ|¡@67
5.5.7¡@±½´y¡@68
5.6¡@¦³$ªº¨ç¼ÆÀ³¥Î¡@68
5.7¡@¨ç¼Æ²Õ¦X¡@70
5.7.1¡@±a¦³¦h­Ó°Ñ¼Æ¨ç¼Æªº²Õ¦X¡@70
5.7.2¡@Point-Free­·®æ¡@71

²Ä6³¹¡@¼Ò¶ô¡@73
6.1¡@¾É¤J¼Ò¶ô¡@73
6.2¡@¨Ï¥Î¼Ò¶ô¤¤ªº¨ç¼Æ¨D¸Ñ°ÝÃD¡@75
6.2.1¡@²Î­p³æµü¼Æ¡@75
6.2.2¡@¤z¯ó°ï¤¤ªºÁ_¬÷°w¡@76
6.2.3¡@³Í¼»±K½X¨F©Ô¡@77
6.2.4¡@ÄY®æ¥ª§éÅ|¡@79
6.2.5¡@´M§ä»Å¼Æ¡@80
6.3¡@¬M®gÁä»P­È¡@82
6.3.1¡@´X¥G¤@¼Ë¦n¡GÃöÁp¦Cªí¡@82
6.3.2¡@¶i¤JData.Map¡@83
6.4¡@ºc³y¦Û¤vªº¼Ò¶ô¡@87
6.4.1¡@´X¦ó¼Ò¶ô¡@87
6.4.2¡@¼Ò¶ôªº¼h¦¸µ²ºc¡@89

²Ä7³¹¡@ºc³y§Ú­Ì¦Û¤vªºÃþ«¬©MÃþ«¬Ãþ¡@91
7.1¡@©w¸q·sªº¼Æ¾ÚÃþ«¬¡@91
7.2¡@¦¨«¬¡@92
7.2.1¡@­É§UPoint¼Æ¾ÚÃþ«¬Àu¤ÆShape¼Æ¾ÚÃþ«¬¡@93
7.2.2¡@±N¹Ï§Î¾É¥X¨ì¼Ò¶ô¤¤¡@94
7.3¡@°O¿ý»yªk¡@95
7.4¡@Ãþ«¬°Ñ¼Æ¡@97
7.4.1¡@­n¤£­n°Ñ¼Æ¤Æ§Ú­Ìªº¨T¨®¡H¡@99
7.4.2¡@¥½¤é¦V¶q¡@100
7.5¡@¬£¥Í¹ê¨Ò¡@102
7.5.1¡@¬Û¦Pªº¤H¡@102
7.5.2¡@§i¶D§Ú«ç¤\Ū¡@103
7.5.3¡@ªk®x¤º«O«ù¯´§Ç¡I¡@104
7.5.4¡@¤@©Pªº¤@¤Ñ¡@105
7.6¡@Ãþ«¬§O¦W¡@106
7.6.1¡@¨Ï§Ú­Ìªº¹q¸Ü¥»§ó¦n¬Ý¨Ç¡@107
7.6.2¡@°Ñ¼Æ¤ÆÃþ«¬§O¦W¡@108
7.6.3¡@¦V¥ª¨«¡A¦V¥k¨«¡@109
7.7¡@»¼Âk¼Æ¾Úµ²ºc¡@111
7.7.1¡@Àu¤Æ§Ú­Ìªº¦Cªí¡@111
7.7.2¡@ºØ¤@´Ê¾ð¡@113
7.8¡@Ãþ«¬Ãþ¡@115
7.8.1¡@²`¤JEqÃþ«¬Ãþ¡@116
7.8.2¡@TrafficLight¼Æ¾ÚÃþ«¬¡@116
7.8.3¡@¤lÃþ¤Æ¡@118
7.8.4¡@§@¬°Ãþ«¬Ãþ¹ê¨Òªº±a°Ñ¼ÆÃþ«¬¡@118
7.9¡@Yes-NoÃþ«¬Ãþ¡@120
7.10¡@FunctorÃþ«¬Ãþ¡@122
7.10.1¡@Maybe¨ç¤l¡@124
7.10.2¡@¾ð¤]¬O¨ç¤l¡@124
7.10.3¡@Either a¨ç¤l¡@125
7.11¡@kind»PµL¦WÃþ«¬¡@126

²Ä8³¹¡@¿é¤J»P¿é¥X¡@128
8.1¡@¯Âºé»P«D¯Âºéªº¤ÀÂ÷¡@128
8.2¡@Hello, World¡I¡@129
8.3¡@²Õ¦XI/O¾Þ§@¡@130
8.3.1¡@¦bI/O¾Þ§@¤¤¨Ï¥Îlet¡@132
8.3.2¡@¤Ï¹L¨Ó¡@133
8.4¡@´X­Ó¹ê¥ÎªºI/O¨ç¼Æ¡@135
8.4.1¡@putStr¡@135
8.4.2¡@putChar¡@135
8.4.3¡@print¡@136
8.4.4¡@when¡@137
8.4.5¡@sequence¡@137
8.4.6¡@mapM¡@138
8.4.7¡@forever¡@139
8.4.8¡@forM¡@139
8.5¡@I/O¾Þ§@¦^ÅU¡@140

²Ä9³¹¡@§ó¦hªº¿é¤J¿é¥X¾Þ§@¡@141
9.1¡@¤å¥ó©M¬y¡@141
9.1.1¡@¿é¤J­«©w¦V¡@141
9.1.2¡@±q¿é¤J¬yÀò¨ú¦r²Å¦ê¡@142
9.1.3¡@Âà´«¿é¤J¡@144
9.2¡@Ū¼g¤å¥ó¡@146
9.2.1¡@¨Ï¥ÎwithFile¨ç¼Æ¡@147
9.2.2¡@bracketªº®É¶¡¨ì¤F¡@148
9.2.3¡@§ì¦í¥y¬`¡@149
9.3¡@TODO¦Cªí¡@149
9.3.1¡@§R°£±ø¥Ø¡@150
9.3.2¡@²M²z¡@152
9.4¡@©R¥O¦æ°Ñ¼Æ¡@153
9.5¡@Ãö¤_TODO¦Cªíªº§ó¦h¦³½ìªº¨Æ¡@154
9.5.1¡@¤@­Ó¦h¥ô°È¦Cªí¡@155
9.5.2¡@³B²z¿ù»~ªº¿é¤J¡@158
9.6¡@ÀH¾÷©Ê¡@159
9.6.1¡@ÂYµw¹ô¡@160
9.6.2¡@§ó¦hÀH¾÷¨ç¼Æ¡@161
9.6.3¡@ÀH¾÷©Ê©MI/O¡@162
9.7¡@¦r¸`¦ê¡@165
9.7.1¡@ÄY®æªº©M´k©Ê¦r¸`¦ê¡@166
9.7.2¡@¥Î¦r¸`¦ê´_¨î¤å¥ó¡@167

²Ä10³¹¡@¨ç¼Æ¦¡¦a¸Ñ¨M°ÝÃD¡@169
10.1¡@°fªiÄõ¦¡­pºâ¾¹¡@169
10.1.1¡@­pºâRPNªí¹F¦¡¡@169
10.1.2¡@¼g¤@­ÓRPN¨ç¼Æ¡@170
10.1.3¡@²K¥[§ó¦hªº¾Þ§@²Å¡@172
10.2¡@±q§Æ«äù¾÷³õ¨ì­Û´°¡@173
10.2.1¡@­pºâ³Ì§Öªº¸ô½u¡@174
10.2.2¡@¦bHaskell¤¤ªí¥Ü¹D¸ô¨t²Î¡@176
10.2.3¡@¹ê²{­pºâ³Ì¨Î¸ô®|ªº¨ç¼Æ¡@177
10.2.4¡@±q¿é¤JÀò¨ú¹D¸ô¨t²Î¡@179

²Ä11³¹¡@applicative¨ç¤l¡@182
11.1¡@¨ç¤l¦A²{¡@182
11.1.1¡@§@¬°¨ç¤lªºI/O¾Þ§@¡@183
11.1.2¡@§@¬°¨ç¤lªº¨ç¼Æ¡@185
11.2¡@¨ç¤l©w«ß¡@187
11.2.1¡@©w«ß1¡@188
11.2.2¡@©w«ß2¡@188
11.2.3¡@¹H¤Ï©w«ß¡@189
11.3¡@¨Ï¥Îapplicative¨ç¤l¡@191
11.3.1¡@¦Vapplicative°Ý¦n¡@192
11.3.2¡@Maybe applicative¨ç¤l¡@192
11.3.3¡@applicative­·®æ¡@193
11.3.4¡@¦Cªí¡@195
11.3.5¡@IO¤]¬Oapplicative¨ç¤l¡@197
11.3.6¡@¨ç¼Æ§@¬°applicative¡@198
11.3.7¡@zip¦Cªí¡@199
11.3.8¡@applicative©w«ß¡@200
11.4¡@applicativeªº¹ê¥Î¨ç¼Æ¡@201

²Ä12³¹¡@Monoid¡@205
12.1¡@§â²{¦³Ãþ«¬¥]»q¦¨·sÃþ«¬¡@205
12.1.1¡@¥Înewtype³Ð«ØÃþ«¬Ãþªº¹ê¨Ò¡@207
12.1.2¡@Ãö¤_newtypeªº´k©Ê¡@208
12.1.3¡@type¡Bnewtype©Mdata¤TªÌªº¹ï¤ñ¡@210
12.2¡@Ãö¤_¨º¨Çmonoid¡@211
12.2.1¡@MonoidÃþ«¬Ãþ¡@212
12.2.2¡@monoid©w«ß¡@213
12.3¡@»{ÃѤ@¨Çmonoid¡@213
12.3.1¡@¦Cªí¬Omonoid¡@213
12.3.2¡@Product©MSum¡@214
12.3.3¡@Any©MAll¡@216
12.3.4¡@Ordering monoid¡@217
12.3.5¡@Maybe monoid¡@219
12.4¡@monoidªº§éÅ|¡@221

²Ä13³¹¡@§ó¦hmonadªº¨Ò¤l¡@224
13.1¡@¤É¯Å§Ú­Ìªºapplicative¨ç¤l¡@224
13.2¡@Åé·|Maybe¡@225
13.3¡@MonadÃþ«¬Ãþ¡@228
13.4¡@¤@©¹µL«e¡@229
13.4.1¡@¥N½X¡A¥N½X¡A¥N½X¡@230
13.4.2¡@§Ú­n­¸¨«¡@231
13.4.3¡@½u¤Wªº­»¿¼¡@234
13.5¡@do°Oªk¡@235
13.5.1¡@«ö§Ú©Ò»¡ªº¥h°µ¡@236
13.5.2¡@§Ú¥Ö®Jº¸¤S¦^¨Ó¤F¡@237
13.5.3¡@¼Ò¦¡¤Ç°t©M­pºâ¥¢±Ñ¡@238
13.6¡@¦Cªímonad¡@239
13.6.1¡@do°Oªk©M¦Cªí±À¾É¦¡¡@241
13.6.2¡@MonadPlus©Mguard¨ç¼Æ¡@242
13.6.3¡@°¨ªº±´¯Á¡@243
13.7¡@monad©w«ß¡@245
13.7.1¡@¥ª³æ¦ì¤¸¡@246
13.7.2¡@¥k³æ¦ì¤¸¡@246
13.7.3¡@µ²¦X«ß¡@247

²Ä14³¹¡@¦A¦h¤@¨Çmonad¡@249
14.1¡@Writer¡H§Ú¨SÅ¥»¡¹L°Ú¡I¡@249
14.1.1¡@monad»°¨ÓÀç±Ï¡@251
14.1.2¡@WriterÃþ«¬¡@253
14.1.3¡@¹ïWriter¨Ï¥Îdo°Oªk¡@254
14.1.4¡@µ¹µ{§Ç²K¥[¤é§Ó¡@255
14.1.5¡@§C®Äªº¦Cªíºc³y¡@257
14.1.6¡@¨Ï¥Î®t¤À¦Cªí¡@258
14.1.7¡@¤ñ¸û©Ê¯à¡@259
14.2¡@Reader¡H§c¡A¤£¶}ª±¯º¤F¡@260
14.2.1¡@§@¬°monadªº¨ç¼Æ¡@261
14.2.2¡@Reader monad¡@261
14.3¡@±aª¬ºA­pºâªºÀu¶®ªí¥Ü¡@262
14.3.1¡@±aª¬ºAªº­pºâ¡@263
14.3.2¡@´Ì©M¥ÛÀY¡@264
14.3.3¡@State monad¡@265
14.3.4¡@Àò¨ú©M³]¸mª¬ºA¡@267
14.3.5¡@ÀH¾÷©Ê©MState monad¡@268
14.4¡@ùÙ¤WªºError¡@269
14.5¡@¤@¨Ç¹ê¥Îªºmonad¦¡ªº¨ç¼Æ¡@271
14.5.1¡@liftM©M¥¦ªºªB¤Í­Ì¡@271
14.5.2¡@join¨ç¼Æ¡@274
14.5.3¡@filterM¡@276
14.5.4¡@foldM¡@278
14.6¡@³Ð«Ø¤@­Ó¦w¥þªºRPN­pºâ¾¹¡@279
14.7¡@²Õ¦Xmonad¦¡ªº¨ç¼Æ¡@281
14.8¡@³Ð«Ømonad¡@282

²Ä15³¹¡@zipper¡@287
15.1¡@¦b¾ð¤W²¾°Ê¡@287
15.1.1¡@­±¥]®h¡@290
15.1.2¡@¦V¤W¨«¡@291
15.1.3¡@³B²zµJÂI³Bªº¾ð¡@293
15.1.4¡@¤@¸ô¨«¨ì³»ºÝ¡A¨º¨½ªºªÅ®ð¬J·sÂA¤S¤zÐä¡@294
15.2¡@¦b¦Cªí¤W©w¦ì¡@294
15.3¡@¤@­Ó«D±`²³æªº¤å¥ó¨t²Î¡@295
15.3.1¡@¬°¤å¥ó¨t²Î³Ð«Ø¤@­Ózipper¡@296
15.3.2¡@¾Þ§@¤å¥ó¨t²Î¡@298
15.4¡@¤p¤ß¦æ¨Æ¡@299
15.5¡@ÁÂÁ¾\Ū¡I¡@301
§Ç¡G