Skip to content

Instantly share code, notes, and snippets.

           (´・_・`)
          /,  /
         (ぃ9  |
          /    /、
         /   ∧_二つ
         /   /
        /    \
       /  /~\ \
       /  /   >  )
     / ノ    / /
 *      +     巛 ヽ
            〒 !   +    。     +    。     *     。
       +     。  |  |
    *      +   / /   イヤッッホォォォオオォオウ!
       / /
      (´・_・`/ / +    。     +    。   *     。
      ,-     f
      / ュヘ    | *     +    。     +   。 +
     〈_} )   |
        /    ! +    。     +    +     *
             / )
            ./ /
           / /
           / /
         ./ /      , -つ
         / /・_・`)   /__ノ
        /    \ / /
        .|    へ/ /
        |    レ'  /、二つ
        |     /
@tokiwoousaka
tokiwoousaka / gist:9783721
Last active August 29, 2015 13:57
"@zakky_dev: Aの処理に失敗したらBをやり、それにも失敗したらCをやり、そこで失敗したら例外をスローする。どの処理でも成功したらDの処理を実行する。こういったことやりたいのかなりあるんだけど、どうしよっかなー。" https://twitter.com/zakky_dev/status/448654622970753024
public class Main {
private static void procces(boolean success, String procName){
if(success){
System.out.println("処理 " + procName + " 成功");
throw new RuntimeException();
}
System.out.println("処理 " + procName + " 失敗。。。");
}
@tokiwoousaka
tokiwoousaka / gist:9786835
Last active August 29, 2015 13:57
1時間もかかってしまった。。。Hskell力が足りない・・・
module Main where
import Control.Monad
import Control.Monad.Trans
-- Try
data Try a b = Success a | Failed b deriving Show
instance Monad (Try a) where
return x = Failed x
m >>= k = case m of
Success x -> Success x
@tokiwoousaka
tokiwoousaka / gist:11398245
Last active August 29, 2015 14:00
ブドウの房問題
module Main where
import Control.Monad
import Data.List
step :: Int
step = 5
clusterCount :: Int -> Int
clusterCount n = n * (n + 1) `div` 2
module Main where
import Data.Maybe
import Data.Monoid
import Control.Applicative
import Control.Monad.State
import Control.Lens
import Text.Trifecta
main :: IO ()
main = do
import Control.Applicative
data A
data B
data C
data D
data X
f :: A -> B -> C
@tokiwoousaka
tokiwoousaka / gist:5875c4a3bf2d0ebcc1a3
Last active August 29, 2015 14:02
無限リストはComonadだってじっちゃが言ってたもんだから・・・
{-# LANGUAGE DeriveFunctor #-}
module Main where
import Control.Applicative
import Test.QuickCheck
import Data.Maybe (fromJust)
class Functor w => Comonad w where
extract :: w a -> a
duplicate :: w a -> w (w a)
extend :: (w a -> b) -> w a -> w b
@tokiwoousaka
tokiwoousaka / gist:852d512d8ab57ecd5b3d
Last active August 29, 2015 14:02
今更QuickCheckの練習してた
{-# LANGUAGE DeriveFunctor #-}
module Main where
import Test.QuickCheck
import Prelude (($), (.), id)
import Prelude (Integer, Bool)
import Prelude (IO(..), putStrLn)
import Prelude (Show(..), Read(..), Eq(..))
import Prelude (Functor(..), Monad(..))
import Control.Monad
import Control.Applicative