@haskellru

Страница 1465 из 1551
Alexander
14.09.2018
14:47:27
и haskell

на каком-то

ну или другое фп

Iva
14.09.2018
14:48:11
кока не знаю, скалу знаю с котиками, кок планировал выучить в этом семестре

Google
Евгений
14.09.2018
14:49:04
А что на формальной верификации учат?

ПРОЛОГ

Anton
14.09.2018
14:49:18
Datalog

Iva
14.09.2018
14:49:21
SMT

SAT

я юзал Z3

у меня есть влажная мечта заставить работать key для скалы

Anton
14.09.2018
14:53:29
кока не знаю, скалу знаю с котиками, кок планировал выучить в этом семестре
если с теорией типов все хорошо, то за семестр можно продвинуться неплохо

Iva
14.09.2018
14:54:18
я не знаю теории хорошо, я просто математик с горя с того что за кородон в магистратуру/аспирантуру не взяли переехавший в скалисты

Anton
14.09.2018
14:57:21
еще стоит добавить, что есть несколько диалектов Coq, так что за такое ограниченное время лучше учить то, что потом будет использоваться в проекте (если цель — вкатиться в какой-то проект)

Alexander
14.09.2018
14:58:20
@AntonTrunov тебе кстати твиг что-нибудь ответил?

Iva
14.09.2018
14:58:24
цели такой нет но спецкурс есть

Anton
14.09.2018
14:58:50
@AntonTrunov тебе кстати твиг что-нибудь ответил?
неа, до техн. интервью не добрались )

Google
Anton
14.09.2018
14:59:35
а у меня потом другой проект появился и я не стал теребить Мэтью

Alexander
14.09.2018
15:00:45
ясно

Yura
14.09.2018
15:10:40
А если я, например, хочу зашарить socket между двумя threads. И закрыть его когда сдохнет только последний поток. Есть возможность это сделать, кроме как через Weak Reference ?

ResourceT не предлагапть

Yura
14.09.2018
15:41:04
Я не понял вопрос про managed

Denis
14.09.2018
15:42:00
Я не понял вопрос про managed
ну как-то сделать используя Гонзалевский managed

Yura
14.09.2018
15:42:15
Ок, посмотрю

Я про него не знал

Спасибо

Denis
14.09.2018
15:42:39
кто-видел уже https://hackage.haskell.org/package/kazura-queue ?

Александр
14.09.2018
15:48:22
А если я, например, хочу зашарить socket между двумя threads. И закрыть его когда сдохнет только последний поток. Есть возможность это сделать, кроме как через Weak Reference ?
Вариант решения: Запустить третий тред, в нем дожидаться двух сигнальных mvar от этих двух. Они отправляют сигнал, когда все сделали.

Третий тред закрывает ресурс

Alexander
14.09.2018
15:52:10
resourcet и то лучше

weak reference слишком ненадёжная штука

но если соберёшься то делай его на mvar в котором сокет хранить будешь

а то шарить ресурс без синхронизированного апи, это такое

третий тред только если он и так и так уже есть

@drcha0s ^

Google
Alexander
14.09.2018
15:55:20
если тебе не поможет resourcet то и managed не поможет

managed это обычный bracket в красивой обертке

а с resourcet можно выразить строго больше, чем с bracket

Denis
14.09.2018
15:58:05
managed это обычный bracket в красивой обертке
ну как бы с ним можно выразить bracket, но это не только bracket manageBracket :: MonadManaged m => IO a -> (a -> IO b) -> m a manageBracket create destroy = managed ( bracket create destroy )

Alexander
14.09.2018
15:58:37
managed это bracket в обертке

позволяет писать их красивее, когда не копится вложенность видимая пользователю

хорошая штука, наверное

Denis
14.09.2018
15:59:24
та черт возьми это просто ContT только удобней

Alexander
14.09.2018
15:59:47
я говорю, что с resourcet можно выразить строго больше

с bracket/managed ты не можешь сделать раннее освобождение ресурса, или передачу ресурса в другой тред

и с bracket/managed и resourcet возможен use after free

т.е. от него они не защищают

Alexander
14.09.2018
16:01:21
вот.

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

Denis
14.09.2018
16:22:00
я считаю что second в Bifunctor и rmap в Profunctor должны быть удалены, после введения QuantifiedConstraints

потому что хватит такого class (forall x. Functor (f x)) => Bifunctor1 f where bimap1 :: forall a b c d. (a -> b) -> (c -> d) -> f a c -> f b d lmap1 :: forall a b c. (a -> b) -> f a c -> f b c lmap1 f = bimap1 f id class (forall x. Functor (f x)) => Profunctor1 f where dimap1 :: forall a b c d. (a -> b) -> (c -> d) -> f b c -> f a d lcmap1 :: forall a b c. (a -> b) -> f b c -> f a c

Yura
14.09.2018
16:29:37
resourcet и то лучше
Там weak reference под капотом

Alexander
14.09.2018
16:29:55
там IORef с reference counter

Maxim
14.09.2018
16:30:51
а что вы думаете о ComponentM?

Google
Alexander
14.09.2018
16:31:16
reosourcet это обычный bracket (newIORef []) (releaseReferences) $\x ->Resourcet $ runReaderT f x

а что вы думаете о ComponentM?
меня не убедили что он полезный

Yura
14.09.2018
16:32:21
Значит меня глючит, я когда ему под капот смотрел, кажется weak reference где-то видел

Alexander
14.09.2018
16:32:33
не, никогда не было

Yura
14.09.2018
16:32:48
Но там возможно наряду с IORefом

Я посмотрю

Alexander
14.09.2018
16:32:56
на weak reference нельзя хорошо полагаться, оно сильно зависит от GC

и не prompt

Yura
14.09.2018
16:33:29
Ну мне достаточно чтоб он когда-то закрыл сокет

Alexander
14.09.2018
16:33:30
там каунтер, который для forkResourceT нужен

Admin
ERROR: S client not available

Alexander
14.09.2018
16:34:40
я делаю так: 1. логика вкладывается в bracket - то его или managed 2. не вкладывается - resources 3. вкладывается но нужно забороть use after free - рагионы

регионы

учитывая что у тебя в команде не дураки код пишут мест для 3 почти нет

и.к. защита от use after free идёт дорогой ценой

Yura
14.09.2018
16:35:49
Мне resourceT не очень хочется тащить

Alexander
14.09.2018
16:36:03
могу поспорить ты его уже тащишь

Yura
14.09.2018
16:36:10
Нет

Alexander
14.09.2018
16:36:17
нужна утилита "использую ли я это"

Yura
14.09.2018
16:36:30
Это Легаси хаскел :D

Google
Anton
14.09.2018
16:36:31
Вопрос, кто-нибудь знает хорошие либы для gui в терминале на ascii? Аля, чтобы можно было такое сделать https://github.com/jesseduffield/lazygit

Alexander
14.09.2018
16:36:33
серьезно ни варпа ни кондуитов ничего этого нету?

ещё вариант сделать мини resourcet

Yura
14.09.2018
16:37:37
Да не либу взять не проблема, я не хочу менять существующий код

Maxim
14.09.2018
16:38:21
https://serokell.io/ariadne/ тут есть демонстрация чего на нем реально запилить

Alexander
14.09.2018
16:38:23
это надо стек ставить

Anton
14.09.2018
16:39:06
тогда cabal freeze и посмотреть в сгенеренном файле

или он зависимости зависимостей не показывает?

Anton
14.09.2018
16:40:38
Daedalus сложно заводится

Maxim
14.09.2018
16:40:51
лол

@VividDesires можешь ещё и работу найти ;)

Приходи к нам работать;) jobs@serokell.io

Anton
14.09.2018
16:41:58
Счас сильно повязан на текущий проект, как доделаю, так сразу

Maxim
14.09.2018
16:42:01
кстати у нашего кошелька полным ходом идет разработка и десктопного приложения

его даже уже можно собрать и поюзать, гайдов только нет никаких

Anton
14.09.2018
16:42:22
Мне CLI больше по душе

Maxim
14.09.2018
16:42:50
github.com/serokell/ariadne

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