@haskellru

Страница 1480 из 1551
dimiii
21.09.2018
14:46:00
> нет ни одного > выбрал одну правильно
На какую версию мне стоит посмотреть?

Alexander
21.09.2018
14:46:17
драйвера к postgres?

dimiii
21.09.2018
14:46:43
драйвера к postgres?
Да. Чтобы получить представление о хорошем и эффективном коде

Alexander
21.09.2018
14:49:02
есть 3 либы которые можно назвать драйвером: - postgres-wire (ссылку вы видели выше) - postgresql-libpq - odbc посмотрите например postgresql-libpq например как самую популярную

Google
Alexander
21.09.2018
14:49:13
хотя я не уверен, что там хороший и эффективный код

liftA* там нету

даже не знаю в какой либе дров к pg они могли быть

но учитывая, что это байндинг к либе - код там специфический

Владислав
21.09.2018
14:59:04




15 процентов дошли до «конца» в первый раз. из них дошло 9 процентов на втором курсе. итого, в хаскеле до финала доходит 1,6 процентов.

Это со степика

Alexander
21.09.2018
15:00:21
вторая часть скучновата и сбивчива

там возникает очущение, что ты что-то делаешь, но не ясно зачем

Владислав
21.09.2018
15:02:05
Alexander
21.09.2018
15:02:29
в формате степика даже не знаю

Alexander
21.09.2018
15:02:35
там возникает очущение, что ты что-то делаешь, но не ясно зачем
ну часть с парсером весёлая, но это самое начало

Google
Alexander
21.09.2018
15:03:00
ну там начинаются копипасты инстансов 100500 раз

Владислав
21.09.2018
15:03:09
конечно, о хаскелистах как о небожителях думают, раз они прошли такой отбор.

Alexander
21.09.2018
15:03:15
т.е. оно *нужно* для понимания

но не все выдержат

демидовича тоже не все прорешивают

dimiii
21.09.2018
15:03:30
даже не знаю в какой либе дров к pg они могли быть
Вот еще вариант https://github.com/nikita-volkov/hasql Тот код, найти не могу, но мне точно не привидилось

Alexander
21.09.2018
15:03:59
текущая версия либы никиты это все же не драйвер

он хочет драйвер сделать, насколько я знаю

так то есть postgresql-simple поверх postgresql-libpq

может оно?

@willbasky третья часть на мой взгляд разумна только специализированная

т.е. изучение какой-то области с примерами на Haskell

Alexander
21.09.2018
15:07:19
системы типов, компиляторы те же

ML

это в универах

Владислав
21.09.2018
15:09:27
Кто-нибудь встречал туториал по squeal кроме того, что есть в доках и на ютюбе от автора?

Alexander
21.09.2018
16:41:06
стикеры на канале не работают

Google
Igor
21.09.2018
16:43:16
Кажется, я не планировал сюда что-то писать, сорян

Alexander
21.09.2018
16:46:03
все ок

Ilya
21.09.2018
20:23:49
GHC 8.6.1 вроде релизнулся? Что там интересного?:)

A64m
21.09.2018
20:28:48
вроде нет еще

Ilya
21.09.2018
20:29:00
я в гите видел

http://git.haskell.org/ghc.git

A64m
21.09.2018
20:31:23
а, тег поставили.

ну, значит в течении нескольких дней соберут под основные платформы и анонс напишут

а что нового тут написано https://downloads.haskell.org/~ghc/8.6.1-beta1/docs/html/users_guide/8.6.1-notes.html

языковые фичи новые - DerivingVia и QuantifiedConstraints

из неязыковых - поиск подстановок для типодырок сильно лучше чем в 8.4

ну и всякие синтаксические мелочи вроде for_ [0, 10_000 .. 100_000] \i -> print i

Alexander
21.09.2018
20:35:59
:doc в этом?

A64m
21.09.2018
20:36:18
а, да, доки еще

можно в гхци смотреть

еще хип-вью из коробки

больше можно плагинами делать

ну и конечно новая фича оптимизатора, оптимизирующая 1 в 3, которая попала в гхц только благодаря единственному человеку, который про нее не забыл - мне https://ghc.haskell.org/trac/ghc/ticket/9136#comment:26

Leonid
21.09.2018
21:30:26
GHC now supports British spelling of GeneralizedNewtypeDeriving. Nice

Евгений
21.09.2018
21:40:18
языковые фичи новые - DerivingVia и QuantifiedConstraints
Квантифаент констрейнт выглядит круто

Google
kana
21.09.2018
22:26:26
как сделать всегда верный констрейнт вида Type -> Constraint

class Any a instance Any a очевидно

Admin
ERROR: S client not available

Dmitry
22.09.2018
03:58:01
Такое же ощущение изучения сферических коней возникло

kana
22.09.2018
07:58:41
type Any a = ()
тут нет типа Type -> Constraint

Any x тут неделим, Any сам по себе нельзя использовать

Yuriy
22.09.2018
08:38:55
тут нет типа Type -> Constraint
{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE KindSignatures #-} type Any a = (() :: Constraint) λ> :k Any Any :: * -> Constraint

kana
22.09.2018
08:39:24
ну не получится тут отдать Any сам по себе

Yuriy
22.09.2018
08:39:30
да, твой вариант class + instance лучше

kana
22.09.2018
08:40:07
class X a where type C a :: Type -> Constraint instance F Int where type C Int = Any

вообще немного поработав с классами с ассоциативными констрейтами, которые потом в элементах класса встречаются, могу сделать вывод, что это крайне неудобно, наверное должен быть способ лучше это делать, про который мы пока не знаем

как минимум типолямбды все немного упрощают

в которые нет ни одного движения, хоть вроде ghc даже форкали и писали рабочий вариант

Yuriy
22.09.2018
08:44:41
class X a where type C a :: Type -> Constraint instance F Int where type C Int = Any
class X a where type C a b :: Constraint instance X Int where type C Int b = ()

(const ()) ограничение кажется лишней сущностью, когда можно взять ()

alexknvl
22.09.2018
08:49:12
class Any a instance Any a class X a (c :: Type -> Constraint) | a -> c instance X Int Any

можно вот так

Google
kana
22.09.2018
09:08:24
это стало решающим

{-# LANGUAGE RankNTypes , TypeOperators , MultiParamTypeClasses , TypeInType , TypeFamilies , UndecidableInstances , StandaloneDeriving #-} import Prelude hiding (Functor, map) import Data.Kind import Data.Function (fix) class Category cat where cat_id :: a `cat` a cat_compose :: b `cat` c -> a `cat` b -> a `cat` c instance Category (->) where cat_id = id cat_compose = (.) instance Category (~>) where cat_id = Nat id cat_compose f g = Nat (runNat f . runNat g) class (Category cat1, Category cat2) => Functor cat1 cat2 (f :: obj1 -> obj2) where type C f (a :: obj1) :: Constraint map :: C f a => (a `cat1` b) -> (f a `cat2` f b) instance Functor (->) (->) Maybe where type C Maybe a = () map = fmap instance Functor (~>) (->) Fix where type C Fix f = (Functor (->) (->) f, C f (Fix f)) map eta = fix (\f -> Fix . runNat eta . map f . unFix) newtype f ~> g = Nat { runNat :: forall x. f x -> g x } newtype Fix f = Fix { unFix :: f (Fix f) } deriving instance Show (f (Fix f)) => Show (Fix f) toList :: Maybe a -> [a] toList (Just x) = [x] toList Nothing = [] x :: Fix Maybe x = Fix (Just (Fix (Just (Fix Nothing)))) y :: Fix [] y = map (Nat toList) x

наконец описал инстанс функтора для Fix

Yuriy
22.09.2018
09:13:16
повторяешь https://hackage.haskell.org/package/categories?

Denis
22.09.2018
09:14:25
повторяешь https://hackage.haskell.org/package/categories?
У Кметта нет функтора для фикс, разве что это бификс, тогда функтор в стандартных тайпклассах выразим

Yuriy
22.09.2018
09:15:32
классы и у Кметта, и у @kana_sama свои

kana
22.09.2018
09:16:14
повторяешь https://hackage.haskell.org/package/categories?
да нет, никакой цели не было и либу не видел, внезапно загорелся желанием как-то выразить в хаскеле функториальность Fix, что раньше даже не казалось мне очевидным

Denis
22.09.2018
09:16:25
классы и у Кметта, и у @kana_sama свои
не надо мне про Кметтовские пакеты рассказывать) я знаю про них, и про внутреннее устройство

Страница 1480 из 1551