Skip to content

Instantly share code, notes, and snippets.

View xkikeg's full-sized avatar

kikeg xkikeg

  • Zürich, Switzerland
  • 17:01 (UTC +02:00)
View GitHub Profile
{-# LANGUAGE OverloadedStrings #-}
import Control.Applicative
import Data.Binary.Get
import qualified Data.ByteString as BS
import Data.Conduit
import Data.Conduit.Serialization.Binary
import Data.Word
query :: BS.ByteString
@xkikeg
xkikeg / conduit_sample.hs
Created September 14, 2013 17:48
特定の値を読み込むまでのConduit ref: http://qiita.com/liquidamber/items/22e3d791c3396b3ab13d
{-# LANGUAGE OverloadedStrings #-}
import Data.Conduit
import qualified Data.Conduit.Binary as CB
import qualified Data.Conduit.List as CL
takeWhile' :: Monad m => (a -> Bool) -> Conduit a m a
takeWhile' f = do
mx <- await
case mx of
Nothing -> return ()
@xkikeg
xkikeg / maybe.hs
Created July 4, 2013 06:10
Maybeならguardで例外送出がかけるけどEitherならどうするんだろう?
import Data.Either
import Control.Monad
failable :: Int -> Maybe Int
failable x = do
guard $ x /= 0
guard $ x /= 10
return $ x + 10
doFailable :: Int -> IO ()
cancel e ->
e.preventDefault?()
e.returnValue ?= false
@xkikeg
xkikeg / persistRelationOneToOne.hs
Last active December 18, 2015 13:09
Yesod Book :: Persistent :: One To One Relations
{-# LANGUAGE QuasiQuotes, TypeFamilies, GeneralizedNewtypeDeriving, TemplateHaskell,
OverloadedStrings, GADTs, FlexibleContexts #-}
import Data.Conduit (runResourceT)
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Logger (runStderrLoggingT)
import Data.Time
@xkikeg
xkikeg / persistentAttributes.hs
Last active December 18, 2015 13:09
Yesod Book :: Persistent :: Attributes
{-# LANGUAGE QuasiQuotes, TypeFamilies, GeneralizedNewtypeDeriving, TemplateHaskell,
OverloadedStrings, GADTs, FlexibleContexts #-}
import Data.Conduit (runResourceT)
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
import Control.Monad.Logger (runStderrLoggingT)
import Data.Time
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistUpperCase|
@xkikeg
xkikeg / persistentSynopsis.hs
Last active December 18, 2015 11:49
Yesod Book :: Persistent :: Synopsis
{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings #-}
{-# LANGUAGE GADTs, FlexibleContexts #-}
import Data.Conduit (runResourceT)
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
import Control.Monad.Logger (runStderrLoggingT)
import Control.Monad.IO.Class (liftIO)
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
@xkikeg
xkikeg / sessionUltDest.hs
Last active December 18, 2015 11:49
Yesod Book :: Sessions :: Ultimate Destination
{-# LANGUAGE OverloadedStrings, TypeFamilies, TemplateHaskell,
QuasiQuotes, MultiParamTypeClasses #-}
import Yesod
data UltDest = UltDest
mkYesod "UltDest" [parseRoutes|
/ RootR GET
/setname SetNameR GET POST
/sayhello SayHelloR GET
@xkikeg
xkikeg / sessionMessages.hs
Last active December 18, 2015 11:49
Yesod Book :: Sessions :: session messages
{-# LANGUAGE OverloadedStrings, TypeFamilies, TemplateHaskell,
QuasiQuotes, MultiParamTypeClasses #-}
import Yesod
data Messages = Messages
mkYesod "Messages" [parseRoutes|
/ RootR GET
@xkikeg
xkikeg / sessionOperations.hs
Last active December 18, 2015 11:18
Yesod Book :: Sessions :: session operations
{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, OverloadedStrings #-}
import Yesod
import Control.Applicative ((<$>), (<*>))
import qualified Web.ClientSession as CS
data SessionExample = SessionExample
mkYesod "SessionExample" [parseRoutes|
/ Root GET POST
|]