-
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 |