2012-01-01ãã1å¹´éã®è¨äºä¸è¦§
ã¯ãã Scalaz Advent Calendar 2012 12/22 ã§ãã ååã«å¼ãç¶ããMyOptionã®ããã®Monoidã¨Monadãå®è£ ãã¦ã¿ã¾ãã Monoidã®å®è£ Monoidã¯trait Monoid[F]ã¨å®ç¾©ããã¦ããã®ã§ãä»åã¯MyOptionã®Intåã®å®è£ ãå®ç¾©ãã¾ãã ã³ã¼ãã¯æ¬¡ã®ã¨ããã å®è£ ãâ¦
Play or Scala Advent Calendar 2012ã® 12/21æ¥ã®è¨äºã§ãã ã¢ãããç解ããããã«ãHaskellã§ã¢ãããä½ã£ã¦ã¿ãã®ã§ãããScalaz*1ã§ãMaybeã¢ãããä½ã£ã¦ã¿ããã¨æã試ããçµæãå ±åãã¾ãã MyOptionãå®ç¾©ãã ä¾ã®ãã¨ãMaybeåãå®ç¾©ãã¾ãã Haâ¦
doå¼ã§ã®ã¢ããã®è¨è¿°æ¹æ³ã«ã¤ãã¦ç°¡åã«ã¾ã¨ããã Some 1 >>= \x -> Some(x+2) ãdoå¼ã«æ¸ãç´ã㨠apply = do a <- Some 1 Some $ a + 2 Monadã«ã¯returnãããã®ã§ããã«æ¸ãæããã apply = do a <- return 1 :: Option Int return $ a + 2 é¢æ°ã®å¼æ°â¦
Monadã調ã¹ã¦ããã¨ãã¢ãã¢ãè¨ããããªãã¾ããï¼ ãã¦ãOptionãMonad対å¿ããä¾ãæ¸ãã¦ã¿ã¾ãã Monadåã¯ã©ã¹ã¯æ¬¡ã®ãããªå®ç¾©ã«ãªã£ã¦ãã¾ããreturnã¨>>=ãå®è£ ããã¨ãããã¨ãããã class Monad m where return :: a -> m a (>>=) :: m a -> (a â¦
ååã®ç¶ããããMaybeã®ä¸èº«ãMonoidã ã£ãå ´åã®åã¯ã©ã¹ã®å®è£ ã¯æ¬¡ã®ã¨ããã import Data.Monoid data Option a = None | Some a deriving (Eq, Ord, Read, Show) instance (Monoid a) => Monoid (Option a) where mempty = None None `mappend` any = aâ¦
ä»åã¯èªä½ããMaybeç¨ã®Monoidåã¯ã©ã¹ã®å®è£ ãä½ã£ã¦ã¿ã¾ãã Monoidã£ã¦ä½ã£ã¦ãã£ã±ãããããªãã®ã§ãåã¯ã©ã¹ã®å®ç¾©ãè¦ã¦ã¿ã¾ãã class Monoid m where mempty :: m mappend :: m -> m -> m mconcat :: [m] -> m mconcat = foldr mappend mempty mcoâ¦
é£ç¶æ稿ã§ããããããHæ¬ãèªã¿ãªããããµã¨ã¢ã¤ãã¢ã湧ãã¦ããã®ã§Haskellã³ã¼ããæ¸ããªãã£ã¦ã¿ãã ãããHaskellãã®ããå¦ã¼ãï¼ä½è : Miran Lipovacaåºç社/ã¡ã¼ã«ã¼: ãªã¼ã 社çºå£²æ¥: 2012/09/21ã¡ãã£ã¢: Kindleçè³¼å ¥: 1人 ã¯ãªãã¯: 4åãã®â¦
Maybeã®èªä½ã§ãããååã«å¼ãç¶ãApplicativeåã¯ã©ã¹ã®å®è£ ã追å ãã¦ã¿ã¾ããã ã³ã¼ãã¯æ¬¡ã®ã¨ããã import Control.Applicative data Option a = None | Some a deriving (Eq, Show) instance Functor Option where fmap f (Some x) = Some (f x) fmaâ¦
ã¢ãããç解ããããã«Maybeãèªä½ãããã¨ã«ããã®ã§ãé©å½ã«ã³ã¼ããããã¦ã¿ããã¢ããå¼·è ã®æ¹ã®ãã³ããããã°ãããã³ã³ãã³ãåããã®ã§ã¯æã data Option a = None | Some a deriving (Eq, Show) instance Functor Option where fmap f (Some x) =â¦
Scalaã§ããªãã©ã¤ãã³ãã©*1ã欲ãããªã£ãã®ã§ããã®ããã°ãåèã«ä½ã£ã¦ã¿ãã Ruby ã® retry-handler ãæ¿ãã便å©ãããªã®ã§ Java ã§å®è£ ãã¦ã¿ã - Yoshioriã®Blog試è¡é¯èª¤ãã¦ãããid:xuwei ãforkãã¦ããã¦ããï¼â https://gist.github.com/29969â¦
æ¨æ¥ã¯ã¿ãªãããã¤ãããã¾ã§ããã ç§ã¯äºæ¥ç®ã® Community Panel Discussion ã§æ¥æ¬Scalaã¦ã¼ã¶ã¼ãºã°ã«ã¼ã代表*1ã¨ãããã¨ã§ç»å£ãã¾ããããããã¨ããããã¾ããï¼ *1:æ¬å½ã®ä»£è¡¨ã¯æ°´å³¶ä»£è¡¨(ä»®)ã§ã
commons-daemonã使ã£ãããNettyServerãã¡ããã¨Linuxã®ãã¼ã¢ã³åã§ããã https://gist.github.com/2156447
WEB+DB PRESS Vol.67ä½è : å·å£èä»,å±±æ¬å彦,大åç°ç´,ç½åæ §,太ç°æå¾,åã ä¸çª,Shawn M Moore,æ¸ æ°´äº®,ãã ããã¡âãã¨ã,å°éä¿®å¸,ãã«ãã¾,ç¥æé£å¿,æµæ¸æ彦,ä¸å³¶è¡,é½è¤æ£æµ©,é«æ©å¾ç¾©,ããã¯,ã¿ããã,WEB+DB PRESSç·¨éé¨åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾â¦