åœä»€åããã°ã©ãã³ã°ã®çè«çåºç€ã¯ã20äžçŽã®30幎代ã«ã¢ã©ã³ãã¥ãŒãªã³ã°ãšãžã§ã³ãã©ã³ãã€ãã³ã«ãã£ãŠè§£ãããŸããã æ©èœçã¢ãããŒãã®æ ¹åºã«ããçè«ã¯ã20代ãš30代ã«åœ¢æãããŸããã é¢æ°åããã°ã©ãã³ã°ã®æ°åŠçåºç€ã®éçºè ã«ã¯ãã¢ãŒãŒã¹ã·ã§ãŒã³ãã£ã³ã±ã«ïŒãã€ããšãã·ã¢ïŒããã¹ã±ã«ã«ã¬ãŒïŒã€ã®ãªã¹ïŒãã¢ãã³ãŸæäŒïŒã¢ã¡ãªã«ïŒããããŸãã ã·ã§ãŒã³ãã£ã³ã±ã«ãšã«ãªãŒã¯çµã¿åããè«çã®åºç€ãç¯ããæäŒã¯ã©ã ãèšç®ã®äœæè ã§ãã
é¢æ°åããã°ã©ãã³ã°ã¯ãçµã¿åããããžãã¯ãšã©ã ãèšç®ããã®ã¢ã€ãã¢ã«åºã¥ããŠããŸãã
ãããã1950幎代åé ã«John McCarthyãLispèšèªïŒ1958ïŒãéçºãããŸã§ãçè«ã¯çè«ã®ãŸãŸã§ããããããæåã®ã»ãŒæ©èœçãªããã°ã©ãã³ã°èšèªã«ãªããŸããã Lispã«ã¯é·å¹Žç«¶åä»ç€ŸãããŸããã§ããã ãã®åŸãé¢æ°åããã°ã©ãã³ã°èšèªAPLïŒ1964ïŒãISWIMïŒ1966ïŒãããã³FPïŒ1977ïŒãç»å ŽããŸãããããããã¯ããã»ã©åºã䜿çšãããŠããŸããã§ããã
Lispã¯ãæéã®çµéãšãšãã«ãç¹ã«ããã°ã©ã ã³ãŒãã®éãšè€éãã®å¢å€§ã«ãããããã°ã©ã éçºè ã®ããã€ãã®èŠä»¶ãæºããããšããããŸããã ãã®ç¶æ³ã«é¢é£ããŠãã¿ã€ãã³ã°ã®åœ¹å²ãå¢ãå§ããŸããã 20äžçŽã®70幎代åŸåãã80幎代åé ã«ãé¢æ°åèšèªã«é©ããã¿ã€ãã³ã°ã¢ãã«ãéäžçã«éçºãããŸããã
ãããã®ã¢ãã«ã®ã»ãšãã©ã«ã¯ãããŒã¿ã®æœè±¡åãããªã¢ãŒãã£ãºã ãªã©ã®åŒ·åãªã¡ã«ããºã ã®ãµããŒããå«ãŸããŠããŸããã MLãSchemeãHopeãMirandaãCleanãªã©ãå€ãã®åä»ãé¢æ°åèšèªãç»å ŽããŸããã ããã«ãæ¹èšã®æ°ã¯çµ¶ããå¢å ããŠããŸããã
MLïŒ1973ïŒ-æåã®Hindley â Milnerã¿ã€ãã³ã°èšèªã
SchemeïŒ1975ïŒã¯ãLispèšèªã§æã人æ°ã®ãã2ã€ã®æ¹èšã®1ã€ã§ãã
SASLãKRCããã©ã³ãïŒ1972â1985ïŒ-æåã®é 延èšèªã®1ã€ã
HopeïŒ1980ïŒã¯ã代æ°çããŒã¿åãæã€æåã®èšèªã®1ã€ã§ãã
ãã¹ã±ã«ã«ã¬ãŒ
ãã®çµæãé¢æ°åããã°ã©ãã³ã°ã«é¢äžããã»ãŒãã¹ãŠã®ã°ã«ãŒããç¬èªã®èšèªã䜿çšããŠããããšãå€æããŸããã ããã«ããããããã®èšèªã®ãããªãæ®åã劚ããããå€ãã®åé¡ãçºçããŸããã
Haskellèšèªã®æŽå²ã¯1987幎ã«å§ãŸããŸãã 次ã ãšãæ°ããé¢æ°åããã°ã©ãã³ã°èšèªãç»å ŽããŸããã MirandaïŒResearch Software Ltdã1985ïŒã®ãªãªãŒã¹ä»¥æ¥ãã¬ã€ãžãŒã³ã³ãã¥ãŒãã£ã³ã°ãžã®é¢å¿ãé«ãŸã£ãŠããŸãã1987幎ãŸã§ã«ã12ãè¶ ããéå³å¯ãªçŽç²é¢æ°åããã°ã©ãã³ã°èšèªãç»å ŽããŸããã
ãã©ã³ãã¯æãåºã䜿çšãããŠããŸãããããœãããŠã§ã¢ã®ç¹èš±ãååŸããŠããŸããã ãªã¬ãŽã³å·ããŒãã©ã³ãã§éå¬ãããé¢æ°åããã°ã©ãã³ã°èšèªãšã³ã³ãã¥ãŒã¿ãŒã¢ãŒããã¯ãã£ã«é¢ããäŒè°ïŒFPCAã1987幎ïŒã§ãåå è ã¯ããã®ãããªèšèªã®ãªãŒãã³ã¹ã¿ã³ããŒããå®çŸ©ããå§å¡äŒãèšç«ããããšã«åæããŸããã å§å¡äŒã®ç®çã¯ãæ¢åã®é¢æ°åèšèªã1ã€ã®å ±éèšèªã«çµåããããšã§ãããããã¯ãé¢æ°åããã°ã©ãã³ã°èšèªã®éçºã«ãããå°æ¥ã®ç 究ã®åºç€ãæäŸããŸãã
ããã§ãHaskellãããŸããã çµã¿åããè«çã®åµå§è ã®äžäººãHaskell Curryã«ã¡ãªãã§åä»ããããŸããã
1980幎代ã®çµãããŸã§ã«ãå€ãã®é¢æ°åèšèªãäœæãããŸããã ãããã®ããã€ãã¯Haskellã«å€§ããªåœ±é¿ãäžããŸããïŒ
æ°ããèšèªã¯ãç 究ãšå®éã®åé¡ã«é©ããèªç±èšèªã«ãªãããšã§ããã ç¡æã®èšèªã¯ãéçºè å§å¡äŒã«ãã£ãŠçå®ãããæšæºã«åºã¥ããŠããŸãã ãã®åŸã誰ã§ãæšæºã®å®è£ ãéå§ããèšèªã³ã³ãã€ã©ãäœæã§ããŸãã Haskellæšæºã®æåã®ããŒãžã§ã³ã¯ã1990幎4æ1æ¥ã«å ¬éãããŸããã
Haskell 1.0-1.4
Haskellã®æåã®ããŒãžã§ã³ïŒHaskell 1.0ïŒã¯1990幎ã«ãªãªãŒã¹ãããŸããã å§å¡äŒã®è©Šã¿ã¯ãäžé£ã®èšèªå®è£ ïŒ1.0ã1.1ã1.2ã1.3ã1.4ïŒããããããŸããã
ãã¹ã±ã«98
1997幎ã®çµããã«ãHaskell 98ã¯ãå°æ¥ã®éçºã®åºç€ãšããŠã1ã€ã®å®å®ãããæå°éã®ã移æ€å¯èœãªããŒãžã§ã³ã®èšèªãšãç 究çšã®ä»å±æšæºã©ã€ãã©ãªã§æå®ããå¿ èŠããããŸããã å§å¡äŒã¯ãå®éšçãªæ©èœãè¿œå ããã³å°å ¥ããããšã«ãããhaskell 98ã®æ¡åŒµããã³ããªãšãŒã·ã§ã³ã®äœæãç©æ¥µçã«åãå ¥ããŸããã
1999幎2æãHaskell 98èšèªæšæºãæåã«The Haskell 98 ReportãšããŠå ¬éãããŸããã 2003幎1æãä¿®æ£çããHaskell 98èšèªãšã©ã€ãã©ãªïŒæ¹èšã¬ããŒãããšããŠå ¬éãããŸããã èšèªã¯æ¥éã«é²åãç¶ããã°ã©ã¹ãŽãŒHaskellã³ã³ãã€ã©ïŒGHCïŒã³ã³ãã€ã©ã®å®è£ ã¯å®éã®èšèªæšæºãè¡šããŠããŸãã
Haskell 2010
Haskellã®çŸåšã®æšæºã§ããHaskell 2010ã¯ã2009幎11æ24æ¥ã«çºè¡šãããŸããã GHCã¯ãããŒãžã§ã³7.0.1以éãããããµããŒãããŠããŸãã
Haskell '98ãšæ¯èŒãããšã次ã®å€æŽãå«ãŸããŠããŸãã
â¢Do Then If Then
â¢éå±€ã¢ãžã¥ãŒã«
â¢ç©ºã®å€æ°ã®å®£èš
â¢æç¶å¯èœæ§ãœãªã¥ãŒã·ã§ã³
â¢ãµãŒãããŒãã£ã®æ©èœã€ã³ã¿ãŒãã§ã€ã¹
â¢ç·åœ¢ã³ã¡ã³ãæ§æ
â¢ã¬ãŒããã¿ãŒã³
â¢è»œéã®äŸåé¢ä¿åæ
â¢èšèªã®æ瀺ïŒãã©ã°ãïŒ
â¢n + kãã¿ãŒã³ã®æ¬ åŠ
2011幎1æ7æ¥ã«è¿œå ã®å€æŽãå ¬éãããŸããã
â¢ããŒã¿åã³ã³ããã¹ãã®æ¬ åŠ
â¢ç®æ¡æžãã®å€æ°ãªã¹ã
Haskellã¯ä»æ¥ãé²åãç¶ããŠããŸãã ãã ããå®å®ããŒãžã§ã³ã¯ãããã1998幎ãš2010幎ã®æšæºã«åºã¥ããŠããŸãã ãããããããã«å ããŠãå€ãã®æ¡åŒµæ©èœãHaskellã«å«ãŸããŠãããåžžã«æ°ããã¢ã€ãã¢ãå°å ¥ãããŠããŸãã äžçã®ããã€ãã®åœããã®èšèªã«åãçµãã§ããŸã-ãããã¯ã€ã®ãªã¹ããªã©ã³ããã¢ã¡ãªã«ããªãŒã¹ãã©ãªã¢ã§ãã Haskellãžã®é¢å¿ã¯ããã«ãããã»ããµãã¯ãããžãŒã®äººæ°ã«ãããã®ã§ãã Haskellã¢ãã«ã¯ã䞊åèšç®ã«é©ããŠããŸãã
Haskellã®äœæè ãã
Curryã¯ãHaskellèšèªã®äžã«å®è£ ãããæ±çšã®çµã¿èŸŒã¿ããã°ã©ãã³ã°èšèªã§ãã ã«ãªãŒèšèªã¯ãé¢æ°åããã°ã©ãã³ã°ïŒãã¹ããããåŒãé«æ¬¡é¢æ°ãã¬ã€ãžãŒã³ã³ãã¥ãŒãã£ã³ã°ïŒãè«çããã°ã©ãã³ã°ïŒè«çå€æ°ãéšåããŒã¿æ§é ãçµã¿èŸŒã¿æ€çŽ¢ã·ã¹ãã ïŒãããã³äžŠåã·ã¹ãã ã®ããã°ã©ãã³ã°æ¹æ³ïŒè«çå€æ°ã«ããåæã䌎ã䞊ååŒèšç®ïŒã®å¯èœæ§ãã·ãŒã ã¬ã¹ã«çµã¿åãããŸãïŒ
ããã«ãã«ãªãŒã¯ãçŽç²ãªããã°ã©ãã³ã°èšèªãšæ¯èŒããŠè¿œå ã®ã¡ã«ããºã ãæäŸããŸãïŒé¢æ°åèšèªãšæ¯èŒããŠãè«çèšèªãšæ¯èŒããŠãäžå®å šãªããŒã¿ã䜿çšããæ€çŽ¢ãšèšç®ã¯ã決å®è«ãšé¢æ°ã®å¿ èŠã«å¿ããŠåŒã³åºããããããå¹ççãªèšç®ã¡ã«ããºã ã§ãïŒã
人æ°åºŠ
Githubã¯çŸåšãããã°ã©ãã³ã°èšèªã®äžã§23çªç®ã«äººæ°ããããŸãã
TIOBE ã€ã³ããã¯ã¹ã§ã¯ã38çªç®ã«ãããŸãã
RedMonk Haskellã®ã©ã³ãã³ã°ã§ã¯éåžžã«é«ãã16äœã§ãã ãã®å Žåãè©äŸ¡ã¯ãGitHubã§ã®äººæ°ãšStack Overflowã§ã®ãã£ã¹ã«ãã·ã§ã³ã®ã¢ã¯ãã£ããã£ã®çµã¿åããã®è©äŸ¡ã«åºã¥ããŠããŸãã
ãããžã§ã¯ã
Haskellã¯å€ãã®è€éãªãããžã§ã¯ããå®è£ ããŠããŸãïŒ
â¢ã³ã³ãã€ã©ããã³ãã®ä»ã®éçºããŒã«ã
â¢åæ£DarcsããŒãžã§ã³ç®¡çã·ã¹ãã ã
â¢ãŠã£ã³ããŠãããŒãžã£ãŒxmonad ã
⢠HAppS Webã¢ããªã±ãŒã·ã§ã³ãµãŒã㌠ã
â¢Perl 6çšã®ãã°ã€ã³ã¿ãŒããªã¿ãŒ/ã³ã³ãã€ã©ã
â¢ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŠã¹ ã
⢠LavaããŒããŠã§ã¢èšè¿°èšèªã
â¢LOLITAèªç¶èšèªåŠçã·ã¹ãã ã
⢠Equinox / Paradoxããã³Agdaã®å®çã®èšŒæã·ã¹ãã ã
ãã§ã€ã¹ããã¯
ã¹ãã ãã£ã«ã¿ãªã³ã°ã¯ãFacebookã®ãšã³ãžãã¢ã解決ããæãéèŠãªã¿ã¹ã¯ã®1ã€ã§ãã æ倧ã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã¯15å人ãè¶ ãã人ã ããã®ã¡ãã»ãŒãžãåŠçãããããåé¡ã®èŠæš¡ãæšå®ã§ããŸãã 2015幎ã«ãå瀟ã¯Haskellããã°ã©ãã³ã°èšèªã䜿çšããæ°ããã¹ãã 察çãã£ã«ã¿ãŒãå°å ¥ããŸããã
ãã®è¥ããå®éšçå°äœãæ¯èŒçäœã人æ°ã«ãããããããFacebookã¯HaskellãéžæããŠéèŠãªã¢ãžã¥ãŒã«ãäœæããŸããã æ°ããã¹ãã 察çãã£ã«ã¿ãŒã®éçºããŒã ã®äžå¡ã§ãããšã³ãžãã¢ã®1人ã§ããLouis Brandyã¯ããã®ãããžã§ã¯ãã«ååãš2幎éãè²»ãããŸããã Wiredãšã®ã€ã³ã¿ãã¥ãŒã§ã圌ã¯ããããã©ã®ããã«èªå°ããããã説æããŸããã
ã«ã€ã¹ãã©ã³ãã£ã¯æ éã«èšèãéžã³ãHaskellãFacebookã«ã¹ãã ãã£ã«ã¿ãŒãå®è£ ããã®ã«çæ³çãšåŒãã§ããŸãã Facebookã¯éåžžã«å€§ããªãããžã§ã¯ãã§ãããã¹ãããŒã¯ããã«æŠè¡ãå€æŽãããããããã«æå¹ã«ãªãã¹ãã ãã£ã«ã¿ãŒãéçºããåžžã«å€æŽããããŒã«ãå¿ èŠã§ãã
çŸä»£ã®ã€ã³ã¿ãŒãããã®éçºãèŠããšãå€ãã®ã€ã³ã¿ãŒããããããžã§ã¯ãããã®ãã¹ã«æ²¿ã£ãŠè¡ãããã¹ãã§ãããã®ããã«ã¯ãã¹ã±ãŒã©ããªãã£ãšãªã¢ã«ã¿ã€ã ã®å¿çãéèŠã§ãã Facebookã®éçºè ã«ãããšãHaskellèšèªã«ã¯å¹ åºã人æ°ã®ãããããã£ã³ã¹ããããŸãã Haskellãä»ã®èšèªãšã¯ãŸã£ããç°ãªããšããäºå®ã®ã¿ãå¹²æžããŸã-ãããŠãããã«ãããHaskellãžã®å€§é移è¡ãå°é£ã«ãªããŸãã
ããã§ããæ¥çã¯ééããªãæ£ããæ¹åã«åããŠããŸããããšãã°ãGoogleã®GoãMozillaã®Rustãªã©ã䞊åããã»ã¹åãã®æ°ããããã°ã©ãã³ã°èšèªã®äŸã瀺ããŠããŸãã Haskellã»ã©å¹æçã§ã¯ãããŸããããåŠç¿ã¯ç°¡åã§ãã ãããã«ããŠããHaskellã¯ãä»ã®ããã°ã©ãã³ã°èšèªã®éçºãæšé²ããæ°ããææãªãããžã§ã¯ãã®ç«ã¡äžããä¿é²ããŠãããããšã«æè¬ããããšãã§ããŸãã
Evgeny Kozlovã¯åœŒã®ããã°ã§Haskellãšã®å ±åäœæ¥ã®å°è±¡ã«ã€ããŠèªã£ãŠããŸãã
çæ
ãŸã第äžã«ãèšèªãå ¥åããããã®é«ããããå€ã ã¯ããHaskellã¯çŸããããããã§ç°¡æœã§ãããããã¯ç¡æã§å®çŸãããŠããã®ã§ã¯ãªããè³ã®é·ãåæ§ç¯ãšã¢ãããã¢ããå€æåšãã¬ã³ãºãæ©æ¢°ãªã©ã®è€éãªæœè±¡åã®ç 究ã«ãã£ãŠå®çŸãããŠããŸãã
第äºã«ãçç£çãªã³ãŒããæžãããšã®é£ããã§ãã Haskellã®ãã¹ãŠã®ã³ãŒãã¯é 延ããŠãããããã®ã¬ãã€ãã®ä¿çäžã®èšç®ãã¡ã¢ãªã«æ ŒçŽãããŠãããããŸã èŠæ±ãããŠããªãããèšç®ãããªãç¶æ³ãç°¡åã«å®çŸã§ããŸãã
ãã©ã¹åŽ
ãŸã第äžã«ããã¡ãããèšèªã®çŽåºŠã äž¡æ¹ã®æå³ã§ã®çŽåºŠïŒæ©èœã®çŽåºŠãšOOPãã©ãã€ã ã®å®å šãªæ¬ åŠã é¢æ°ã®ã·ã°ããã£ã調ã¹ãŠãå¯äœçšãçºçãããã©ããã確èªã§ããã®ã¯çŽ æŽãããããšã§ãã OOPãååšããªããšããããšã¯ãåºæ¬ã¯ã©ã¹ãããµãã¯ã©ã¹ãžã®æªæ€èšŒãã£ã¹ãã®ãããªæãããããšãè¡ãæ¹æ³ããªãããšãæå³ããŸãã
ã³ãŒããèšè¿°ãããŠããå Žåã2ã€ã®æ¹æ³ã§è§£éããããšã¯å°é£ã§ãã ããšãã°ãHaskellã§ã¯é¢æ°ã¯æåã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã§ãããããScalaã®ããã«é¢æ°ã®äœ¿çšãšé¢æ°ãžã®åç §ãæ··åããããšã¯ã§ããŸããã ãŸãã¯ãããšãã°ããã¹ãŠã®é¢æ°ã¯å°æåã§å§ãŸããã¿ã€ã/ã¯ã©ã¹ã¯å€§æåã§å§ãŸãå¿ èŠããããããé¢æ°ãã¿ã€ããŸãã¯ã¯ã©ã¹ãšæ··åããããšã¯ã§ããŸããã
Haskellã«ã€ããŠèªãããšãç¡æå³ãªèšèªæ©èœã¯ãããªã¢ãŒãã£ãºã ã§ãã Haskellãæ倧éã®åå©çšã³ãŒããæã€èšèªã ãšèšã£ãŠãéèšã§ã¯ãªãã§ãããã å°ãªããšãããã€ãã®å埩æ©èœã¯æœè±¡åãããŸãã