2009-01-01ãã1å¹´éã®è¨äºä¸è¦§
haskell-jp ã«ã¢ãã¦ã³ã¹ãã¾ããããèªãã§ããªãã¨ãã人ããããããªã®ã§ããã¡ãã«ãæ¸ãã¾ãã2009å¹´å¿å¹´ä¼ã®Wikiãã¼ã¸ãã§ãã¦ãã¾ããåå è ã«ã¯å ¨å¡çºè¡¨ãã¦ãããã¾ãã®ã§ãåèªãã¼ããé¸ãã§ä¸ããã
ãããHaskellã«ã¯å¯ä½ç¨ããªãã¨è¨ãããããããã¯ééãã ã確ãã«ãHaskell ã«ã¯ç¶æ ã®å¤åï¼ãããã¯åä»£å ¥ï¼ã¨ããå¯ä½ç¨ã¯ãªããããããå ¥åºåã¨ããå¯ä½ç¨ã¯ããããã®è¨äºã§ã¯ãHaskell ã®å¯ä½ç¨ã«å¯¾ãã¦ãå½ä»¤åããã°ã©ãã¼ã«ãã£ããã¨ç解ã§ãâ¦
GHC ã« -ddump-simpl ãªãã·ã§ã³ã渡ãã¨ãCore å½¢å¼ï¼ä¸é表ç¾ã®é¢æ°åè¨èªï¼ãåºåããã¨ããã®ã§ãPerformance/Accumulating parameterã®ã³ã¼ãã«å¯¾ã㦠Core ãåºåãã¿ãã len æ«å°¾å帰ã§ãªã len ã®ã³ã¼ãã¯ããã len :: [a] -> Int len [] = 0 len â¦
ä¸ææ£ä¸éãããããã°ã©ãã³ã°Haskellã®æ¸è©ãæ¸ãã¦ããã¾ããã®ã§ã触çºããã¦å°ãè£è¶³ãã¾ãã 訳ã«ã¤ã㦠ç´è¨³ãé¿ããæ訳ãã 訳ã¯ãç´è¨³ãé¿ãæ訳ãå¿ããã¾ãããåæãæ³åã§ããªãèªç¶ãªæ¥æ¬èªãç®æãã¦ãã¾ãããã¨ãã°ãç« ã®ã¯ããã«ã¯å¿ ãâ¦
é 延è©ä¾¡ã§ã¯å帰ã®å¹çã¯ã©ããªããã¨ããåé¡ã§ããReal World Haskell ã§ãæ«å°¾å帰ã¯éè¦ã ã¨è¨ã£ãå¾ã«ãé 延è©ä¾¡ã§ã¯æ«å°¾å帰ãªãã¦æ°ã«ãããªã¨ã¡ãã¶å°ãè¿ãã¦ãã¾ãããããã haskell-cafeã§çããè¦ã¤ããã®ã§ãLuke Palmer ããã®è¨±å¯ãå¾ã¦è¨³â¦
æ¨æ¥ã® Haskell ãã¤ãç¨ã«ä½ã£ãã¹ã©ã¤ãããã£ããã§ãããè¦ããã¿ã¤ãã³ã°ãããã¾ããã§ãããæããã®ã§ãããã«æ¸ãã¡ããã¾ãã Haskellerã¯ããã°ã©ãã³ã°çã®ç«å·è«å¿ã§ããã ãªããªããå¤ãã®ããã°ã©ãã¼ã¯Lisperã«æ§ãã¦ããï¼ãããï¼ã ãã¨â¦
賢人鳥ã§æ¸ããå 容ã®è¨æ£ã§ããunsafeCoerce ã使ãã°ãHaskell ã§ãèªå·±è¨åããã³ã¼ããæ¸ãã¾ããããªãã¡ããã®ã¾ãé³¥ã¯ããã§ãã import Unsafe.Coerce m x = x (unsafeCoerce x) ã¨ãã訳ã§ããã§ã¦ã²ã³ãã¦ã¨ãã·ã ã¯ããªãã賢人鳥ãå°åºãã¦ã¿ã¾â¦
é¢ä¿çã«ããã¨Haskellãã¤ãã«ã¯ããããç¹å ¸ããããããã æ¥å ´è ãã¹ã¦ã«ããããªããã«ããã ã·ã®ã¯ããã³ããé ããã ä¼å ´ã§ãReal World Haskellããè²·ãã¨ããã«ããã ã·ã® T ã·ã£ãããä»ãã¦ãã ãããã°ã©ãã³ã°Haskellããç¹å¥ä¾¡æ ¼2,500åã§è²©â¦
ããã°ã©ãã³ã°Haskellã®èª¤æ¤ãã¾ã¨ãããã¼ã¸ãä½ãã¾ããã誤æ¤ã®å ±åã¯ãæ£å¼ã«ã¯ãªã¼ã 社ã¸ã¡ã¼ã«ã§ãããåã«è¨ã£ã¦ãããã®ã§æ§ãã¾ãããã¡ã¼ã«ã§ããããã°ã¸ã®ã³ã¡ã³ãã§ãããã£ããã§ããå£é ã§ããä½ã§ã OK ã§ãããããããé¡ããã¾ãã
11æ14æ¥ã®HIMAã§ãã¿ããªããNum ã® instance ã¯ããä½ããã¨ããçºè¨ããã¦ãã¾ãããNum ã® instance ãªãã¦èªåã§ä½ããããããªãã¨æã£ã¦ããåã¯è¡æãåããã©ãããã¨ãã«ä½ãã®ãå°ãã¾ãããããã¨ãmsakai ããããæéä½ã§ã®è¨ç®ãã¨çããããâ¦
Haskell 好ãã IRC ã§ãã¨ãã©ãªããåãããä¼ã®äºåç®ãææ¥ã®å¤éå¬ãã¾ãã 11æ14æ¥(å) 20:00 ã 22:00 ãµã¼ãã¼ï¼irc.freenode.net ãã£ã³ãã«ï¼#haskell.jp ãã¼ãï¼Typeclassopediaãèªãã§æ¥ã¦ãåãããªããã¨ã話ãã Haskell 好ã㧠Typecllasâ¦
ä¹ ãã¶ãã«IETFã«åå ãã¦æ¥ããitojun awardã®é¸èå§å¡ãªã®ã§ã表彰å¼ã«ç«ã¡ä¼ãããã ã第ä¸åç®ã® itojun award ã¯ãGoogle ã® Lorenzo Colitti ãã㨠Erik Kline ããã«éããããããã¯ãå¤ãã®äººã«ç´å¾ãã¦é ããã®ã§ã¯ãªãã ãããï¼è¡¨å½°å¼ã«ã¯ itojâ¦
æ¬æ¥å·ãä¸ãã£ã¦åãã¾ãããçºå£²ã¯11æ11æ¥ã§ãããªã¼ã 社ã®æ¹æ°ããã½ããã«ãã¼ãªã®ã«ããã¼ãã«ãã¼ã®ããã«å¹³ããéããç¹æ®ãªè£½æ¬ãã ããã§ããHaskellãã¤ãã§ã販売ããããã§ããã§ã¯ãHaskellãã¤ãã§ãä¼ããã¾ããããããã°ã©ãã³ã°Haskellä½â¦
æ¨æ¥ã® RWH èªæ¸ä¼ã§ãå 容ã¨æ¥ç¨ã決ã¾ãã¾ããã®ã§ãç¥ãããã¾ãã 第2å HIMA Haskell 好ãã IRC ã§ãã¨ãã©ãªããåãããä¼ã§ããããã©ã«ãã§ã¯ã第ä¸åææ¥ã®å¤ã«ãªã£ã¦ãã¾ãããä»åã¯ç§ã®é½åã§ã11æ14æ¥(å)ã¨ãªãã¾ããå 容㯠Typeclassopeidâ¦
Haskellæ¬ã®ç¿»è¨³ã2åãçºå£²ããã¾ãã Real World Haskell ãªã©ã¤ãªã¼ã®ãReal World Haskellãããåãååã®ãReal World Haskellãã§ã10æ24æ¥ã«çºå£²ãããäºå®ã§ããååãæ¬ããã訳ãããã®ã ã¨æå¿ãã¾ãã訳ãæ å½ããå±±ä¸ãããä¼æ±ããããç²ãâ¦
IRC 㧠Haskell ã®ãã¨ãã ãã ãã¨ãã£ãããã HIMA ã§ããã第äºåç®ã¯11æ14æ¥ã®å¤ã§ãããã¨ãå¹´ã«4åãããã¯ãããã Haskell ã®éãã§ãããè¨å¿µãã¹ã第ä¸åç®ã¯12æ21æ¥ã®é±ãäºå®ãã¦ãã¾ããå ´æã¯ãç¥ä¿çºãHaskell ãè´ã«é ãåã¿ã¾ãããï¼
åããäºåãã¦ãã¾ããããEmacs ã§ã® Haskell ããã°ã©ãã³ã°ã幸ãã«ããããã¸ã§ã¯ããéå§ãã¦ãã¾ããããããã¯ãhaskell-mode ãç½®ãæãããã®ã§ãããã¨ãããã haskell-mode ã¨å ±åãã¦ãè£å®ã¨ããã¥ã¡ã³ãã®é²è¦§ã幸ãã«ãªãã³ã¼ãããªãªã¼ã¹â¦
éãè °ãä¸ãã¦ãã¯ã©ã¤ãã³ã°ã¸ã ã»ããããæ´æ°ãã¦ãã¾ãã ã¯ã©ã¤ãã¼ã®æ¹ã¸ ããã¶ããã¼ã£ã¦ãã¾ããããã¸ã ãããã¤ã追å ãã¾ãããæå ã®æªç»é²ãªã¹ãã«ã¯ãã¾ã 30å¼±ãããã®ã¸ã ããã¾ããæãè¦ã¤ãã¦ã¯è¿½å ãã¦ããã¾ãã Googlemaps ããã°ã©â¦
Haskell 使ãã§ãEmacs 使ãã§ãCabal ã§ããã±ã¼ã¸ãä½ã人ã®ããã®è©±é¡ããã¼ããããã ãEmacs 㧠.cabal ãã¡ã¤ã«ãä½ãã¨ããã¿ããå ¥ã£ã¦ãã¾ã£ã¦ãcabal configure ããã¨æãããçµé¨ããã人ã¯ã.cabal ãã¡ã¤ã«ã®å é ã«ä»¥ä¸ã®è¡ãå ¥ãã¾ãããã -â¦
Haskell ã«é¢ãã¦ããè¦ããã説æã¯ããããã次ã®ãããªæãã ããé 延è©ä¾¡ã§ã¯ããã®å¤ãå¿ è¦ã«ãªã£ãã¨ãã«åãã¦è©ä¾¡ãããã®ã§ãé çªã大åãªå ¥åºåã¨ã¯ç¸æ§ãæªãããHaskellã®å ¥åºåã¯ãåºæ¬çã«IOã¢ããã使ç¨ããªãã¨æ±ããªããIOã¢ããã¯ãå ¥åºåâ¦
Haskell ã® OpenGL ã©ã¤ãã©ãªãæ°ãããªããå¯ä½ç¨ã¨ã㦠Mac ã§åããªãããã«ãªã£ã¦ããåé¡ã¯ã9æ13æ¥ã®æ´æ°ã§è§£æ±ºãããã¿ããã ããããããMac 㧠OpenGL ã復活ãããããããæä½ã£ã GLUT ã使ãããã°ã©ã ãã³ã³ãã¤ã«ã§ããªããªã£ã¦ãããã©ãâ¦
Emacs ã® haskell-mode ã¯ãè£å®ããªãã®ã§ä½¿ãã«ããã§ããã¨ãã訳ã§ãHaskell ã®äºç´èªã¨ã¢ã¸ã¥ã¼ã«åãè£å®ãã elisp ãæ¸ãã¦ã¿ã¾ãããhaskell-mode ã¨å ±åãã¾ããã¢ã¸ã¥ã¼ã«åã¯ãghc-pkg dump ã解æãã¦å ¥æãã¾ãããã®ãã¼ãµã¼ã¯ãHaskell ã§æ¸â¦
Mac ã® GIMP ã¯ä½¿ãç©ã«ãªããªãã£ãããªããªããGIMP ã®ããã¦ã¤ã³ãã¦ãããä»ã®ã¦ã¤ã³ãã¦ã«ã«ã¼ã½ã«ã移åããã¦ããèªåçã«ãã©ã¼ã«ã¹ãããªãããã ããã®ã¦ã¤ã³ãã¦ãé¸æããã«ã¯ãã¯ãªãã¯ããå¿ è¦ãããããã¨ãã°ããã³ã®å¤ªããå¤ãããã¨ããã¨â¦
ä¹ ãã¶ãã«ãµãã¼ããã¼ã¸ãè¦ãããéå½çãåºçããã¦ããããããããé©ããã®ã¯ãç·´ç¿åé¡ã®çãè¼ã£ã¦ãããã¨ã
éææ¥ã«ç¶æ ç³»ã®ã¢ããã説æããªãã¨ãããªãã®ã§ãä¾é¡ãæ¸ãã¦æ¯è¼ã§ããããã«ãã¦ããã¾ããåªæã¨ãã¦ã以ä¸ã®ã¢ã¸ã¥ã¼ã«ãèªã¿è¾¼ãã§ããã¾ãããã import Data.Char import Control.Monad.Identity import Control.Monad.Reader import Control.Moâ¦
ããã£ããã§ãæ¬å½ã«ããããªãããè¨èã®é çªãããã«éè¦ãã示ãã²ã¨ã¤ã®ä¾ï¼ ä»æ¥ã®åè¨ãä»å¤§äºãªã®ã¯ä»äº ãã¤ã大äºãªã®ã¯ãåã ãä»äºã¨ç§ã¨ã©ã£ã¡ã大äºãªã®ãã¨ãã é·å¹´ã«ããã£ã¦äººé¡ãæ©ã¾ãç¶ãã¦ããé£åã¸ã® è¦äºãªè§£çã ã¨æãã è¨èã®â¦
Haskellã§å®è£ ããé¢æ°ã®å¤ãã§ã¯ããããã Java ã® try/throw/catch/finally ã¯å¿ è¦ã«ãªãã¾ãããããããIO ã絡ãã§ããã¨è©±ã¯å¥ã§ããç°å¸¸ãªç¶æ ã«é¥ã£ãããthrow ãã¦ãããã¬ãã«ã«æ»ãæ¹ããã³ã¼ãããã£ããæ¸ããå ´åãããã¾ãã Java ã§è¨ã tâ¦
Fiemacs 3.7 ãæ¿èªããã¾ããã
æ¨æ¥ã¯å¹³åããã®å½æ¥ã ã£ããä¸å¹´ãçµã¤ã®ã¯ãã£ã¨ããéã ããã®ä¸å¹´ã®éã«ãæã家ã§ã¯ç·ã®åã家æã«å ãã£ããå°æ¬ããå¹³åããã®ãããªäººã«è²ã£ã¦æ¬²ããã¨æããæ¨å¤ã¯ãå¹³åããã®å®å®¶ããé ããç¼é ã飲ãã§ãæ 人ãå²ãã ã