
Denis
25.09.2017
23:13:38
modifyLens f lens = runIdentity . lens (Identity . f)
setLens x = modifyLens (const x)
viewLens lens = getConst . lens Const
даже вместо . лучше #.

Google

kana
25.09.2017
23:21:40
Ну это таки более менее понятно, не очень понятно, как позиция класса в стрелке вляет на возможностью обобщения и специализации, и влияет ли вообще, то есть тема с линзами связана косвенно

Alexander
26.09.2017
05:34:23

Vasiliy
26.09.2017
06:27:52

Alexander
26.09.2017
06:35:50
там не в этом же вопрос был
а в том, почему любой Applicative это Functor, но любая линза это Traversal, а не наоборот.
если я верно понял
я попытался ответить на это гистом выше с которым можно поиграться

Oleg
26.09.2017
06:49:23

Aleksey
26.09.2017
09:16:30
На сайте fby.by повесили анонс конференции, но дата забавная :)
Хмм, и билет уже нельзя купить... Быстро же предварительная продажа билетов закончилась

Alexander
26.09.2017
09:22:09
это потому, что сайт на правильном языке написал (извините)

Anatolii
26.09.2017
09:22:46

Google

Leonid
26.09.2017
09:23:04
Зато быстро

Anatolii
26.09.2017
09:23:32
где самый мощный вентилятор?
наброс начался

kana
26.09.2017
09:33:08
Так, там точно верная цена? 53к рф?

Dmitry
26.09.2017
09:33:33
wat
the ticket is already completed.
OMG WTF

kana
26.09.2017
09:34:50
1800 BYN ~ $925

Dmitry
26.09.2017
09:35:44
круто. интересно, что там должно происходить, что бы это было оправдано

Anatolii
26.09.2017
09:36:50
может ошибка?

Dmitry
26.09.2017
09:37:11
ну, на прошлый fpconf тоже билеты каких-то денег стоили существенных

kana
26.09.2017
09:37:52
Скорее всего ошибка на лишний ноль

Dmitry
26.09.2017
09:37:55
интересно, какова сама идея брать денег за это. я помню катался на мероприятия по опенстеку, они стоили каких-то довольно символических денег, баксов двести что ли
но профита было 0

Aleksey
26.09.2017
09:40:01
В том году около 6Круб стоил билет

Dmitry
26.09.2017
09:40:07
в мск?

Yuriy
26.09.2017
09:40:39
> Сайт fby.by пока не может обработать этот запрос
> HTTP ERROR 500:

Alexander
26.09.2017
09:41:15
снойман жи ему билет и проживание нужно оплачивать
а думаете кошерная еда и жильше дешёвое?
и билет в US и обратно

Google

Aleksey
26.09.2017
09:42:09
в мск?
Билет на минскую конфу в прошлом году стоил что-то вроде 6 тыс. российских рублей - я как-то так помню

Alexander
26.09.2017
09:42:25
/me задумался про минидоклад, там тчо-то про бесплатный билет говорили

Dmitry
26.09.2017
09:42:27
бизнес-классом поди

Aleksey
26.09.2017
09:43:09
@cblp_su ты не помнишь, сколько мы платили в тот раз?

Yuriy
26.09.2017
09:43:51
не помню, но порядок такой, да
115 BYN в прошлом году
это я заплатил за раннюю голодную пташку

Aleksey
26.09.2017
09:46:51
Во! Это с обедом даже вроде

Yuriy
26.09.2017
09:46:57
у них ранние пташки без обеда!
будьте внимательны!
а поесть в округе негде

Aleksey
26.09.2017
09:47:47
Пока нет никаких пташек. И 53К - неадекватная цена для меня лично

Yuriy
26.09.2017
09:51:16
это они просто для инфоповода написали, видимо, а не для продажи
в прошлом году мне говорили
> обычно все наши early bird билеты не включают обеды

Aleksey
26.09.2017
09:52:19
Практика показала, что тот же самый обед можно прикупить на месте

Alex
26.09.2017
09:55:26
если оно в спейсе, то район бгушных общаг за последний год облагородился, баров наоткрывали, наверняка и похавать есть уже где

Yuriy
26.09.2017
09:58:25
здорово, если так

Alexander
26.09.2017
10:02:03
здесь уже высказывались что 53к выглядит как многовато?

Aleksey
26.09.2017
10:19:57
/me высказался :)

Mikhail Subbotin
26.09.2017
10:34:31
Всем привет. Хотел узнать, где можно поискать вакансии для junior или даже стажера по haskell?

Google

Yuriy
26.09.2017
10:43:55
здесь
и в ruhaskell

Anatolii
26.09.2017
10:50:27
я очень засмеялся
про прод понравилось
дико извиняюсь что не по теме

Илья
26.09.2017
10:54:57
А такие книги правда есть?
Если толковые, я бы почитал
Сразу видно, что незадудно написаны

Sherzod
26.09.2017
10:57:15
похоже кто-то тупо сгенерил обложки и всё

Alexander
26.09.2017
10:57:43
это суперобложки же

Oleg
26.09.2017
10:57:57
Забыв придумать имена псевдоавторов

Denis
26.09.2017
11:31:49
https://github.com/cazala/coin-hive :D

kana
26.09.2017
12:30:07
Вау, я написал небольшие линзы без статей, попытался сам допереть, как использовать эти идентити и консты. И таки допер. И это такая классная идея. И такая странная. Я хз, как Кметт до этого дошел вообще. Он безумен.

? animufag ?
26.09.2017
12:36:06
а были наброски линз до кметта?

Denis
26.09.2017
12:36:55

Vasiliy
26.09.2017
12:37:02
были

Denis
26.09.2017
12:37:21
Кто подскажет почему в Contarvariant в Predicate не сделан представитель Monoid?
вроде просто же

Google

Denis
26.09.2017
12:37:41
instance Monoid (Predicate a) where
mempty = Predicate (\_ -> True)
mappend (Predicate x) (Predicate y) = Predicate (\t -> x t && y t)

? animufag ?
26.09.2017
12:38:17
и почему не назвать
type Lens fromContainer fromValue toContainer toValue

Denis
26.09.2017
12:38:19
и можно писать так
p = foldMap Predicate [(>5), (<20)]
filter (getPredicate p) [0..30]

? animufag ?
26.09.2017
12:38:28
почему это всегда так сложно

Vasiliy
26.09.2017
12:38:47
я так понимаю, линзы в виде traverse предложил twan van laarhoven

Denis
26.09.2017
12:39:35
твой треугольник это &

Vasiliy
26.09.2017
12:39:57
как-то там потом доказали, что (a -> f b) -> s -> f t изоморфно (s -> a, s -> b -> t)

Denis
26.09.2017
12:42:01
гляньте доклад Кметта

Ilya
26.09.2017
12:42:09
глянь в Data.Function, там есть флипнутый оператор применения

kana
26.09.2017
12:42:38

Ilya
26.09.2017
12:42:52
а вообще интересно, на какой клаве ты это набирал

kana
26.09.2017
12:43:19
Это FiraCode шрифт с лигатурами от Тонского

? animufag ?
26.09.2017
12:43:24

Alexander
26.09.2017
12:43:38
поэтому линзы называют van Laarhoven
т.к. Кметт их изобрёл

Ilya
26.09.2017
12:45:09


kana
26.09.2017
12:45:13
Но вот словесносное описание, писал в одной конфе:
Линза - не пара из геттера и сеттера. Это ТОЛЬКО идентити, который еще запаковывает значение. Но обобщенный, то есть функции применяется к значениям не напрямую, а через функторы (что дает нам возможность внести в этот процесс идентити какой-то эффект, например изменение).
Итак, что делает линза, основанная на геттере и сеттере:
Линза принимает некую функцию pure', которая просто маленькое значение заворачивает в функтор (переносит в эффектфул мир). Далее линза принимает большое значение. С помощью геттера вытаскивает из него маленькое значение, переносит его в функтор через pure'. А потом применяет в эффектфул-мире (fmap) сеттер к объекту.
То есть в прямом смысле вытащили значение и внесли его обратно, но сделали это в внутри функтора.
И вся магия в том, что с помощью разных функторов и pure' можно делать разные вещи. Например, если сама по себе линза - такой идентити модификатор, то если отправить в нее конструктор функтора, который перед этим еще применяет к значению какую-нибудь функцию, то получится over.
А если использовать Const, который позволяет обернуть значение в функтор, но потом не дает ничего с ним сделать через fmap, то на выходе мы получим контейнер с нетронутым маленьким значением внутри. Это view.