2007ǯ07·î08Æü

¥µ¥ë¤Ç¤â¤ï¤«¤ëIO¥â¥Ê¥É­¡¡ÝÉûºîÍѤνüµî

¡¡¤³¤Î¤È¤³¤í¡¢»Å»ö¤Î¼ê¤¬¶õ¤¤¤¿¤È¤­¤Ë¡¢Haskell ¤È¤¤¤¦¥×¥í¥°¥é¥à¸À¸ì¤òÊÙ¶¯¤·¤Æ¤¤¤Þ¤¹¡£Haskell¤ÏËͤ¬¤Õ¤À¤ó»È¤Ã¤Æ¤¤¤ëJava¤Ê¤É¤È¤Ï¤«¤Ê¤ê¼ñ¤­¤¬°Û¤Ê¤ë¤Î¤Ç¡¢ ¹Í¤¨¤µ¤»¤é¤ì¤ëÅÀ¤¬Â¿¤¯¡¢µ¤Ê¬Å¾´¹¤Ë¤Ï¤Ô¤Ã¤¿¤ê¤Ç¤¹¡£

¡¡¤È¤Ï¤¤¤¨¡¢ºÇ½é¤Ï¤µ¤Ã¤Ñ¤êÍý²ò¤Ç¤­¤Ê¤¤ÅÀ¤â¤¢¤ê¤Þ¤·¤¿¡£¡ÖIO¥â¥Ê¥É¡×¤Ç¤¹¡£ Web¾å¤Î¿§¡¹¤Ê»ñÎÁ¤òÆÉ¤ó¤Ç¤¤¤ë¤¦¤Á¤Ë¤À¤¤¤¿¤¤¤Î¤È¤³¤í¤ÏÍý²ò¤Ç¤­¤¿¤Î¤Ç¤¹¤¬¡¢¤½¤¦¤Ê¤Ã¤Æ¤ß¤ë¤È¡¢º£Å٤ϡ¢ ºÇ½é¤ËÆÉ¤ó¤À²¿ºý¤«¤ÎÆþÌç½ñ¤äWebµ­»ö¤Ç¤ÎIO¥â¥Ê¥É¤ÎÀâÌÀ¤Î»ÅÊý¤¬µ¤¤Ë¤Ê¤Ã¤Æ¤­¤Þ¤·¤¿¡£
¤³¤¦¤·¤¿µ­»ö¤Ï¡¢Áǿ͸þ¤±¤Ë°×¤·¤¯IO¥â¥Ê¥É¤òÀâÌÀ¤·¤è¤¦¤È¤·¤Æ¡¢¤½¤Î·ë²Ì¡¢¤«¤¨¤Ã¤ÆÆÉ¼Ô¤ò±ì¤Ë´¬¤¤¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ëÌ̤¬¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£

¡¡IO¥â¥Ê¥É¤Ï¡¢Haskell ¤Îµ´Ìç¤È¤«¸Æ¤Ð¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡¢¤ï¤«¤Ã¤Æ¤ß¤ë¤È¤µ¤Û¤ÉÆñ¤·¤¤¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤Ç¤¢¤ì¤Ð¡¢Ëͼ«¿È¤¬¤­¤ï¤á¤ÆÁǿͤ¯¤µ¤¯IO¥â¥Ê¥É¤òÍý²ò¤·¤¿»ÅÊý¤ò¤´ÀâÌÀ¤¹¤ë¤Î¤â¡¢¤É¤Ê¤¿¤«¤ÎÌò¤ËΩ¤Ä¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¡¡¤È¤¤¤¦¤ï¤±¤Ç¡¢¤³¤Îµ­»ö¤Ç¤¹¡£

IO¥â¥Ê¥É¤ÎÌÜŪ

¡¡¤Þ¤ºIO¥â¥Ê¥É¤ÎÌÜŪ¤ò³Îǧ¤·¤Æ¤ª¤­¤Þ¤¹¤Í¡£
¡¡IO¥â¥Ê¥É¤ÎÌÜŪ¤Ï£²¤Ä¤¢¤ê¤Þ¤¹¡£¤Ò¤È¤Ä¤á¤Ï¡¢IOÁàºî¤Ë¤È¤â¤Ê¤¦ÉûºîÍѤò¥×¥í¥°¥é¥à¤«¤é½üµî¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤Õ¤¿¤Ä¤á¤Ï¡¢´Ø¿ô¤Îɾ²Á½ç½ø¤ò»ØÄê¤Ç¤­¤Ê¤¤¡Ê¤·¤Ê¤¤¡Ë¤Î¤¬ÆÃĹ¤Î´Ø¿ô·¿¸À¸ì¤Ç¡¢IOÁàºî¤Î¼Â¹Ô½ç½ø¤ò³Î¼Â¤Ë»ØÄê¤Ç¤­¤ë¼êÃʤò Ä󶡤¹¤ë¤³¤È¤Ç¤¹¡£¤³¤Î£²¤Ä¤ÎÌÜŪ¤¬ Haskell ¤Ç¤É¤Î¤è¤¦¤ËãÀ®¤µ¤ì¤Æ¤¤¤ë¤«¤ò½çÈ֤˸«¤Æ¤¤¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
º£²ó¤ÏÉûºîÍѤνüµî¤Ë¤Ä¤¤¤Æ¸¡Æ¤¤·¤Þ¤¹¡£

ÉûºîÍѤνüµî

¡¡¥×¥í¥°¥é¥à¸À¸ì¤ÎËܤκǽé¤Ëɬ¤º½Ð¤Æ¤¯¤ë¥×¥í¥°¥é¥à¤ò¡¢Haskell ¤Ç½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¡§

	main = putStrLn "Hello, World!"

¡¡¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢¥³¥ó¥½¡¼¥ë¤Ë¡¢"Hello, World!" ¤Èɽ¼¨¤µ¤ì¤Þ¤¹¤Í¡£¤¤¤­¤Ê¤êÉûºîÍѤǤ¹¡£¤ä¤é¤ì¤Á¤ã¤¤¤Þ¤·¤¿¤Í¡£
¤È¤³¤í¤Ç¡¢¤³¤Î¡ÖÉûºîÍѡפϡ֤¤¤Ä¡×µ¯¤­¤Æ¤¤¤ë¤Î¤Ç¤·¤ç¤¦¤«¡£¤½¤ÎÌ䤤¤ËÅú¤¨¤ë¤¿¤á¤Ë¡¢¤³¤Î¼°¤¬²¿¤ò¤·¤Æ¤¤¤ë¤«¡¢ ʬÀϤ·¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡¼°¤Îº¸ÊÕ(main)¤ÏÊÑ¿ô¤Ç¤¹¡£±¦ÊÕ¡ÊputStrLn "Hello, World!"¡Ë¤Ï¼°¤Ç¤¹¡£±¦Êդμ°¤Ï¥¢¥¯¥·¥ç¥ó¤È¤¤¤¦·¿¤ÎÃͤò ÊÖ¤·¤Þ¤¹¡£¼Â¤Ï¥¢¥¯¥·¥ç¥ó¤Ï¥â¥Ê¥É¤Ç¤â¤¢¤ë¤ï¤±¤Ç¤¹¤¬¡¢¤Ò¤È¤Þ¤º¤½¤ì¤Ï˺¤ì¤ÆÄº¤¤¤Æ·ë¹½¤Ç¤¹¡£
¡¡¤µ¤Æ¡¢¤³¤³¤¬´Î¿´¤Ç¤¹¡£putStrLn ¼«¿È¤¬¥¢¥¯¥·¥ç¥ó¤Ê¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ê¸»úÎó¤ò¼õ¤±¤Æ¥¢¥¯¥·¥ç¥ó¤òÊÖ¤¹´Ø¿ô¤Ê¤Î¤Ç¤¹¡£
¡¡putStrLn "Hello, World!" ¤È¤¤¤¦¼°¤Ï¡¢É¾²Á¤µ¤ì¤¿¤È¤­¤Ë¥¢¥¯¥·¥ç¥ó¤òÊÖ¤¹¤À¤±¤Ç¡¢¼«Ê¬¼«¿È¤¬¥³¥ó¥½¡¼¥ë¤Ë "Hello, World!" ¤È½ñ¤­½Ð¤¹¤Î¤Ç¤Ï¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¡¡putStrLn ¤ËÉûºîÍѤ¬¤Ê¤¤¤È¤¤¤¦¤Î¤Ï¤³¤¦¤¤¤¦°ÕÌ£¤Ç¤¹¡£

¡¡¤¸¤ã¤¢¡¢½ñ¤­½Ð¤¹¤Î¤Ïï¤Ç¤·¤ç¤¦¤«¡£¼Â¤Ï Haskell ¤Î½èÍý·Ï¤Ç¤¹¡£
"main" ¤È¤¤¤¦ÆÃÊ̤ÎÊÑ¿ô¤ò¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ë«Çû¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¢¥¯¥·¥ç¥ó¤¬½èÍý·Ï¤Ë°ú¤­ÅϤµ¤ì¤Þ¤¹¡£
½èÍý·Ï¤ÏÅϤµ¤ì¤¿¥¢¥¯¥·¥ç¥ó¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î¤È¤­¤Ë "Hello, World!" ¤¬½ñ¤­½Ð¤µ¤ì¤ë¤Î¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢ÉûºîÍѤȤ¤¤¦¡Ö±ø¤ì»Å»ö¡×¤Ï¡¢½èÍý·Ï¤¬ °ú¤­¼õ¤±¤Æ¤¤¤ë¤ï¤±¤Ç¤¹¡£¤³¤ÎÎã¤Ç¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢¡Ö¥³¥ó¥½¡¼¥ë¤Ë"Hello, World!"¤È½ñ¤­½Ð¤»¡×¤È¤¤¤¦»Ø¼¨½ñ¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡£

¡¡Haskell ¤Ç¤Ï¡¢ main = ¤Ç»Ï¤Þ¤ë¥×¥í¥°¥é¥à¤ÏIO½èÍý¤Î»Ø¼¨½ñ¤òºî¤ë¤³¤È¤ËÀìǰ¤·¡¢¤½¤Î»Ø¼¨½ñ¤Ë½¾¤Ã¤Æ½èÍý·Ï¤¬IO½èÍý¤ò¼ÂºÝ¤Ë¹Ô¤¦¤ï¤±¤Ç¤¹¡£ ¤À¤«¤é¡¢main ÊÑ¿ô¤Î·¿¤Ï¥¢¥¯¥·¥ç¥ó¤¹¤Ê¤ï¤ÁIO½èÍý¤Î»Ø¼¨½ñ¤Ê¤Î¤Ç¤¹¡£

¡¡¤Þ¤È¤á¤ë¤È¡¢Haskell¥×¥í¥°¥é¥à¤Î¡Ö¼Â¹Ô¡×¤Ï¡¢¤Þ¤Ã¤¿¤¯°Û¤Ê¤ë£²¤Ä¤Î»Å»ö¤«¤éÀ®¤êΩ¤Ã¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡§

	Haskell¥×¥í¥°¥é¥à¤Î¡Ö¼Â¹Ô¡× ¡á¡¡­¡¡Ömain = ...¡×¼°¤Î¡Öɾ²Á¡×¡¡¡Ü¡¡­¢É¾²Á·ë²Ì¤Ç¤¢¤ë¥¢¥¯¥·¥ç¥ó¤Î¡Ö¼Â¹Ô¡× 

­¡¤ÏIO½èÍý¤òȼ¤¤¤Þ¤»¤ó¡£IO½èÍý¤Ï­¢¤Çµ¯¤­¤ë¤Î¤Ç¤¹¡£¤À¤«¤é¡¢¡Ömain = ...¡×¼°¤Ï¡¢ÉûºîÍѤò¤Þ¤Ì¤«¤ì¤Æ¤¤¤ë¤Î¤Ç¤¹¡£

¡¡°Ê¾å¤ÎÏä϶ڤ¬Ä̤äƤ¤¤ë¤¬¾Úµò¤¬¤Ê¤¤¤È¹Í¤¨¤ëÊý¤Î¤¿¤á¤Ë¡¢¤â¤¦¤Ò¤È¤Ä¡¢Îã¤òµó¤²¤Þ¤·¤ç¤¦¡§

	main = let a = putStrLn "Hello, World!" in (a >> a)
¡¡¤³¤Î¥×¥í¥°¥é¥à¤Ï¡¢putStrLn "Hello, World!" ¤¬ÊÖ¤¹¥¢¥¯¥·¥ç¥ó a ¤ò Æó²ó³¤±¤Æ¼Â¹Ô¤¹¤ë¥¢¥¯¥·¥ç¥ó¤ò(>>)¤ÇÀ¸À®¤·¤Æ main ÊÑ¿ô¤ËÀßÄꤷ¤Æ¤¤¤Þ¤¹¡£ Haskell ¤ÎÃÙ±äɾ²ÁÊý¼°¤Ç¤Ï¡¢putStrLn "Hello, World!"¤Î¡Öɾ²Á¡×¤Ï°ì²ó¤·¤«¹Ô¤ï¤ì¤Ê¤¤¤Ï¤º¤Ç¤¹¡£°ìÊý¡¢¥¢¥¯¥·¥ç¥ó a ¤ÏÆó²ó¡Ö¼Â¹Ô¡×¤µ¤ì¤Þ¤¹¡£ ¤Ï¤¿¤·¤Æ¤³¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢"Hello, World!"¤¬Æó²ó½ÐÎϤµ¤ì¤Þ¤¹¡£

¥â¥Ê¥É¤Ï²¿¤Î¤¿¤á¤Ë¡©

¡¡Àè¤Ë¡¢¥â¥Ê¥É¤Î¤³¤È¤Ï¤Ò¤È¤Þ¤ºËº¤ì¤Æ¤¯¤À¤µ¤¤¤È½ñ¤­¤Þ¤·¤¿¡£ ¤³¤³¤Þ¤ÇËͤ¬¤·¤Æ¤­¤¿¤è¤¦¤Ë¡¢¥â¥Ê¥É¤Î³µÇ°¤òÍѤ¤¤Ê¤¯¤È¤â¡¢Haskell ¤¬¤É¤Î¤è¤¦¤ËÉûºîÍѤò½üµî¤·¤Æ¤¤¤ë¤«¤ÏÀâÌÀ¤Ç¤­¤Þ¤¹¡£ ¼Â¤ÏÉûºîÍѤνüµî¤È¥â¥Ê¥É¤Î´Ö¤ËľÀܤδط¸¤Ï¤Ê¤¤¤Î¤Ç¤¹¡£

¡¡Â¿¤¯¤Î²òÀâ½ñ¤¬¡¢¤³¤³¤Î¤È¤³¤í¤òÛ£Ëæ¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Ëͤò´Þ¤á¤¿½é¿´¼Ô¤¬º®Í𤹤ë¤ï¤±¤Ç¤¹¡£

¡¡¥â¥Ê¥É¤È¥¢¥¯¥·¥ç¥ó¤ÎÈù̯¤Ê´Ø·¸¤¬½Ð¤Æ¤¯¤ë¤Î¤Ï¡¢¤â¤¦¤Ò¤È¤Ä¤ÎÍ×·ï¡ÖIOÁàºî¤Î¼Â¹Ô½ç½ø¤ò³Î¼Â¤Ë»ØÄꤹ¤ë¡×¤òËþ¤¿¤¹¥¢¥¯¥·¥ç¥ó ¤òºî¤í¤¦¤È¤·¤¿»þ¤Ê¤Î¤Ç¤¹¡£¤½¤Î¤³¤È¤Ï¼¡²ó¤´ÀâÌÀ¤·¤Þ¤¹¡£

ÉûºîÍѤÈÀ¤³¦

¡¡¤³¤³¤Þ¤Ç¤ÎÏäϤ´Ç¼ÆÀ失¤¿¤Ç¤·¤ç¤¦¤«¡£ËܤäWeb¤ÇIO¥â¥Ê¥É¤Î¤³¤È¤ò³Ø¤Ð¤ì¤¿Êý¤Ï¡¢°ãÏ´¶¤ò´¶¤¸¤é¤ì¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤È¤¤¤¦¤Î¤Ï¡¢¤¤¤¯¤Ä¤«¤ÎËܤʤɤǤϡ¢Ëͤ¬ÀâÌÀ¤·¤¿¤Î¤È¤Ï°ã¤Ã¤¿»ÅÊý¤ÇÉûºîÍѤ¬½üµî¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤ÊÀâÌÀ¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£
¡¡¶ñÂÎŪ¤Ë¤¤¤¦¤ÈÉûºîÍѤò½üµî¤¹¤ë¤¿¤á¤Ë¡ÖÀ¤³¦¡×¤È¤¤¤¦³µÇ°¤ò»ý¤Á½Ð¤¹¤Î¤Ç¤¹¡£´Êñ¤Ë¤´ÀâÌÀ¤·¤Þ¤·¤ç¤¦¡£

¡¡¤³¤Î¥¢¥×¥í¡¼¥Á¤Ç¤Ï¡¢ÉûºîÍѤΤ¢¤ë´Ø¿ô y=f(x) ¤«¤éÉûºîÍѤò½üµî¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ ÉûºîÍѤˤè¤Ã¤Æ±Æ¶Á¤ò¼õ¤±¤ë¡ÖÀ¤³¦¡×¡Ê¤Î¾õÂ֡ˤò¡¢´Ø¿ô¤ÎÄêµÁ¤ËÌÀ¼¨Åª¤Ë¼è¤ê¹þ¤á¤Ð¤è¤¤¡¢¤È¹Í¤¨¤Þ¤¹¡£ ¤¹¤Ê¤ï¤Á¡¢¾åµ­¤Î´Ø¿ô f ¤òÊѹ¹¤·¤Æ¡Êy, world'¡Ë= f(x, world) ¤È¤¹¤ì¤Ð¡¢ÉûºîÍѤò½üµî¤Ç¤­¤Þ¤¹¡£world ¤Èworld'¤ÏÉûºîÍѤò¼õ¤±¤ëÁ°¤È¸å¤ÎÀ¤³¦¤Î¾õÂÖ¤ò¤½¤ì¤¾¤ìɽ¤·¤Þ¤¹¡£
¡¡²¿¤¬¡Ö¼çºîÍѡʡ©¡Ë¡×¤Ç²¿¤¬¡ÖÉûºîÍѡפ«¤Ï¡¢¤½¤Î¡ÖºîÍѡפ½¤Î¤â¤Î¤ÎÀ­¼Á¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ´Ø¿ô¤ÎÄêµÁ¤Ë°Í¸¤¹¤ë¤Î¤Ç¤¹¡£´Ø¿ô¤Î°ú¿ô¤ÈÊÖ¤êÃͤδط¸¤ÇÀâÌÀ¤¬´°·ë¤¹¤ëºîÍѤϼçºîÍÑ¡£¤½¤ì°Ê³°¤ÏÉûºîÍѤǤ¹¡£IOÁàºî¤À¤«¤é¤È¤¤¤Ã¤ÆÉûºîÍѤÀ¤È·è¤á¤Ä¤±¤ë¤ï¤±¤Ë¤Ï¤¤¤«¤Ê¤¤¤Î¤Ç¤¹¡£ ¤½¤³¤òµÕ¼ê¤Ë¤È¤Ã¤Æ¡¢ÉûºîÍѤˤè¤Ã¤ÆÊѲ½¤¹¤ë¡ÖÀ¤³¦¡×¤½¤Î¤â¤Î¤ò°ú¿ô¤ÈÊÖ¤êÃÍ¤Ë´Þ¤á¤Æ¤·¤Þ¤¨¤Ð¡¢ÉûºîÍÑ¤Ê¤ó¤Æ¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤ï¤±¤Ç¤¹¡£
¡¡¡ÖÀ¤³¦¡×¤òɽ¸½¤¹¤ë¥Ç¡¼¥¿¹½Â¤¤ò¼ÂºÝ¤Ë¤É¤¦ºî¤ì¤Ð¤¦¤Þ¤¯¤¤¤¯¤Î¤«¤ÏËͤÎÍý²ò¤òͤ¨¤Æ¤¤¤Þ¤¹¡£ ¸½¼Â¤ÎÀ¤³¦¤Î¾õÂÖ¤¹¤Ù¤Æ¤òɽ¸½¤¹¤ë¤ï¤±¤Ë¤Ï¤¤¤«¤Ê¤¤¤Î¤Ç¡¢ÂçÃÀ¤Ê¾Êά¤¬É¬ÍפʤϤº¤Ç¤¹¤¬¡¢¤É¤³¤Þ¤Ç¾Êά¤·¤ÆÂç¾æÉפʤΤ«È½ÃǤ¹¤ë¤Î¤Ï¡¢¤­¤Ã¤ÈÆñ¤·¤¤ÌäÂê¤À¤í¤¦¤ÈÁÛÁü¤·¤Þ¤¹¡£
¡¡¤¿¤À¡¢¤½¤ÎÅÀ¤ò½ü¤±¤Ð¡¢¤³¤ì¤Ï¤Þ¤Ã¤¿¤¯Ç¼ÆÀ¤Î¤¤¤¯ÏäǤ¹¡£

¡¡¤³¤ÎÏäÇÃí°Õ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤Î¤Ï¡¢¤³¤Î¥¢¥×¥í¡¼¥Á¤¬»È¤ï¤ì¤ë»Å»ö¤Ï²¿¤«¤È¤¤¤¦ÅÀ¤Ç¤¹¡£
¡¡¼Â¤Ï¤³¤ì¤Ï¡¢Haskell ¤Î½èÍý·Ï¤¬Ã´Åö¤¹¤ë¡Ö¥¢¥¯¥·¥ç¥ó¤Î¼Â¹Ô¡×¤Ë´Ø¤¹¤ëÏäʤΤǤ¹¡£
¡¡ÉûºîÍѤȤ¤¤¦¡Ö±ø¤ì»Å»ö¡×¤Ï¡¢½èÍý·Ï¤¬°ú¤­¼õ¤±¤Æ¤¤¤ë¤È¡¢ËͤϽñ¤­¤Þ¤·¤¿¡£¤³¤Î¤È¤­¤Ï°Å¤Ë¡¢½èÍý·Ï¤Ï Haskell ¤Ç¤Ï¤Ê¤¤¸À¸ì¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤ò Á°Äó¤È¤·¤Æ¤¤¤Þ¤·¤¿¡£¤·¤«¤·¡¢½èÍý·Ï¼«ÂΡʤ¢¤ë¤¤¤Ï¤½¤ÎÂçÉôʬ¡Ë¤ò Haskell ¤Ç½ñ¤¯¤È¤·¤¿¤é¤É¤¦¤Ç¤·¤ç¤¦¡£ Haskell ¤ÏÉûºîÍѤò°ú¤­¼õ¤±¤é¤ì¤Þ¤»¤ó¡£¤À¤«¤é¡¢¤³¤³¤ÇÀâÌÀ¤·¤¿¤è¤¦¤ËÉûºîÍѤò¼çºîÍѤËž²½¤·¤Æ¤·¤Þ¤¦¥¢¥×¥í¡¼¥Á¤¬É¬Íפˤʤë¤ï¤±¤Ç¤¹¡£
¡¡¶ñÂÎŪ¤Ë¸À¤¤¤Þ¤·¤ç¤¦¡£¾å¤Ç¼¨¤·¤¿´Ø¿ô¡Êy, world'¡Ë= f(x, world)¡¡¤Ë¤ª¤¤¤Æ x ¤òÍ¿¤¨¤Æ¤ä¤ë¤È¡Ê¤¢¤ë¤¤¤Ï¡¢Â«Çû¤¹¤ë¤È¡Ë¡¢ (y,world') = g(world)¤È¤¤¤¦¿·¤·¤¤´Ø¿ô¤¬½ÐÍè¤Þ¤¹¡Ê¤³¤Î¤è¤¦¤Ë´Ø¿ô¤Î°ú¿ô¤Î°ìÉô¤ò«Çû¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¿·¤·¤¤´Ø¿ô¤òºî¤ë¤³¤È¤ò¡¢¥«¥ê¡¼²½¤È¤¤¤¦¤½¤¦¤Ç¤¹¡Ë¡£ ¤³¤Î´Ø¿ô g ¤ò¡¢¥¢¥¯¥·¥ç¥ó¤Î¼ÂÁõ¤È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ putStrLn ¤òÎã¤Ë¤È¤ê¤Þ¤·¤ç¤¦¡£¤³¤Î´Ø¿ô¤Î¤â¤È¤Î·Á¡Ê¥«¥ê¡¼²½Á°¤Î·Á¡Ë¤Ï¡§

	putStrLnOriginal:: String -> World -> ( (), World )
¤È¹Í¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤ì¤ò¥«¥ê¡¼²½¤¹¤ë¤È¡§
	putStrLnCurried:: String -> ( World -> ( (), World) )
¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î´Ø¿ô¤ÎÊÖ¤êÃͤη¿¤¬¡¢¾å½Ò¤·¤¿ g ¤ÈƱ¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤Ë¤´Î±°Õ¤¯¤À¤µ¤¤¡£¤³¤ì¤ò¥¢¥¯¥·¥ç¥ó¤¹¤Ê¤ï¤ÁIO()¤ËÃÖ¤­´¹¤¨¤¿¤Î¤¬¡§
	putStrLn:: String -> IO ()
¸«´·¤ì¤¿·Á¤Ç¤¹¤Í¡£

¡¡¤³¤ì¤Ç¡¢¤³¤Î¡ÖÀ¤³¦ÊÑ´¹´Ø¿ô¡×¤ÎÏ䬡¢½èÍý·Ï¤Î¼ÂÁõÊýË¡¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¢¤Ã¤Æ¡¢ Haskell¥×¥í¥°¥é¥à¤«¤éÉûºîÍѤò¼è¤ê½ü¤¯»ÅÁȤߤȤϴط¸¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ë¤´Ç¼ÆÀ失¤¿¤Ç¤·¤ç¤¦¤«¡£¤ä¤ä¤Ã¤³¤·¤¤¤Ç¤¹¤Í¡£

¤³¤Îµ­»ö¤Ø¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯URL

http://blogs.dion.ne.jp/keis/tb.cgi/5880105
¢¨È¾³Ñ±Ñ¿ô»ú¤Î¤ß¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤Ï¼õ¿®¤µ¤ì¤Þ¤»¤ó¡£
¢¨¸ÀµÚ¥ê¥ó¥¯¤Î¤Ê¤¤¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤Ï¼õ¿®¤µ¤ì¤Þ¤»¤ó¡£
¤³¤Îµ­»ö¤Ø¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯
WikiPedia:¥â¥Ê¥É WikiPedia.en:Monad, WikiPedia.en:Monads in functional programming Notions of Computati..
¥â¥Ê¥É¡Úassari (PukiWiki/TrackBack 0.3)¡Û at 2008ǯ01·î08Æü 15:26


 
¢¨È¾³Ñ±Ñ¿ô»ú¤Î¤ß¤Î¥³¥á¥ó¥È¤ÏÅê¹Æ¤Ç¤­¤Þ¤»¤ó¡£