-
2023-09-26 Казань. Митап по функциональному программированию в Казани Регистрация
Темы:
— про software transactional memory (STM) и том, какие проблемы она решает;
— как работать с иммутабельными данными удобно и без боли.
| module A (A(..)) where | |
| newtype A = A Int | |
| deriving (Show, Eq) |
| -- | Create new cache service. | |
| -- | |
| new | |
| :: (Show a, Hashable a, Ord a) | |
| => LoggerEnv | |
| -> Config | |
| -> IO (Handle a b) | |
| new ctx' cfg@Config {..} = do | |
| ref <- newIORef PSQ.empty | |
| pure $ Handle |
2023-09-26 Казань. Митап по функциональному программированию в Казани Регистрация
Темы:
— про software transactional memory (STM) и том, какие проблемы она решает;
— как работать с иммутабельными данными удобно и без боли.
| import Data.Binary | |
| import Data.Binary.Get | |
| import qualified Data.ByteString as B | |
| import qualified Data.ByteString.Lazy as BL | |
| stream :: Binary a => BL.ByteString -> [a] | |
| stream = go (runGetIncremental get) . BL.toChunks where | |
| go (Done rest _ a) [] | |
| | B.null rest = [a] |
| import Data.Traversable | |
| import Data.Foldable | |
| import Data.List | |
| import System.IO.Unsafe | |
| import System.Directory | |
| main = do | |
| xs <- foo ["/Users/qnikst/"] | |
| for_ xs $ putStrLn |
| {-# LANGUAGE TypeOperators #-} | |
| {-# LANGUAGE TypeFamilies #-} | |
| {-# LANGUAGE KindSignatures #-} | |
| {-# LANGUAGE DataKinds #-} | |
| {-# LANGUAGE GADTs #-} | |
| type family Head x where | |
| Head (x ': xs) = x | |
I hereby claim:
To claim this, I am signing this object:
| {-# LANGUAGE ExistentialQuantification #-} | |
| {-# LANGUAGE ViewPatterns #-} | |
| {-# LANGUAGE MagicHash #-} | |
| {-# LANGUAGE UnicodeSyntax #-} | |
| {-# LANGUAGE RebindableSyntax #-} | |
| {-# LANGUAGE GADTs #-} | |
| {-# LANGUAGE DataKinds #-} | |
| -- Linear IO, in `IO a` - `a` have to have 1 weight. | |
| import SIO |
| {-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
| {-# LANGUAGE ScopedTypeVariables #-} | |
| {-# LANGUAGE OverloadedStrings #-} | |
| {-# LANGUAGE ExistentialQuantification #-} | |
| {-# LANGUAGE GADTs #-} | |
| {-# LANGUAGE TypeFamilies #-} | |
| {-# LANGUAGE DataKinds #-} | |
| {-# LANGUAGE DeriveGeneric #-} | |
| {-# LANGUAGE MultiParamTypeClasses #-} | |
| {-# LANGUAGE FunctionalDependencies #-} |
| {-# LANGUAGE TypeInType #-} | |
| {-# LANGUAGE RankNTypes #-} | |
| {-# LANGUAGE GADTs #-} | |
| {-# LANGUAGE TemplateHaskell #-} | |
| {-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
| {-# LANGUAGE DataKinds #-} | |
| {-# LANGUAGE TypeFamilies #-} | |
| {-# LANGUAGE ExistentialQuantification #-} | |
| module Main where |