
Aleksey
27.07.2017
10:56:14
кстати да, есть же колючая проволока!
А ещё конверты и бананы с линзами :)

Vasiliy
27.07.2017
10:56:17
ну и оригинальный пейпер, собственно

Denis
27.07.2017
10:56:19
https://github.com/xgrommx/awesome-functional-programming/blob/master/rsfa.md

Aleksey
27.07.2017
10:57:34
@xgrommx ну вот! У тебя уже есть ссылка на "Бананы, ..."

Google

Denis
27.07.2017
10:58:01
прикол что Кметт обобщил Fix до базового неподвижного функтора через Base RecType = Type

Aleksey
27.07.2017
11:01:12
Так там просто мнемоника срабатывает, не?

Denis
27.07.2017
11:01:26
кстати про бананы http://blog.ezyang.com/2010/05/bananas-lenses-envelopes-and-barbed-wire-a-translation-guide/

Aleksey
27.07.2017
11:02:15
вот тебе и мнемоника :)

Denis
27.07.2017
11:02:37
но есть еще всякие gCata это general version cata
и еще сложнее
вот Кметт как всегда кучу всего написал https://www.stackage.org/haddock/lts-9.0/recursion-schemes-5.0.2/Data-Functor-Foldable.html а как все это юзать не выложил)
это же жесть https://www.stackage.org/haddock/lts-9.0/recursion-schemes-5.0.2/Data-Functor-Foldable.html#v:grefold
вот кто может рассказать про Elgot и CoElgot

Aleksey
27.07.2017
11:05:14
Кметту а) не интересно выкладывать примеры б) он считает, что из кода всё понятно в) и что те, кто добрался до этого пакета, всяко способны осилить самостоятельно
Кметт успевает только писать пакеты, на туториалы по ним нет времени

Google

Aleksey
27.07.2017
11:07:19
"Нужно бежать только для того, чтобы оставаться на месте. Чтобы двигаться вперед, нужно бежать ещё быстрее!" (с)
"Нет времени объяснять! Хватай новый пакет!" :)

Denis
27.07.2017
11:08:45
ну вот я покрыл только ana/anaM, cata/cataM, para/paraM, apo/apoM
а там еще дофига чего)

Aleksey
27.07.2017
11:10:13
а там еще дофига чего)
Вот видишь - на одни только туториалы и то времени не хватает, а надо схемы ещё и применять!

Denis
27.07.2017
11:11:19
это все что он написал)) в объяснения http://comonad.com/reader/2009/recursion-schemes/

Aleksey
27.07.2017
11:13:10
да, и ссылки на "самоочевидный код"

Denis
27.07.2017
11:14:46
но у Кметта еще мало чего) тут вообще адок https://github.com/slamdata/matryoshka
ну и https://github.com/slamdata/purescript-matryoshka

Евгений
27.07.2017
11:16:10
Гугл по recursion-scheme только библиотеки кметтовские выдаёт :(
В чём суть и где про основы почитать?

Denis
27.07.2017
11:18:30

Aleksey
27.07.2017
11:19:26
матрёшку делают по мотивам кметтотворений, так что
> но у Кметта еще мало чего
странно звучит :)

Denis
27.07.2017
11:19:38
ну и тут http://anton-k.github.io/ru-haskell-book/book/16.html

Aleksey
27.07.2017
11:20:19
Просто скалка - вербозная

Denis
27.07.2017
11:21:02

Alexander
27.07.2017
11:23:02
можно ли нубу гдето хаскель программистом заделаться? Желательно с возможностью оплаты.

Google

? animufag ?
27.07.2017
11:23:14
нет

Denis
27.07.2017
11:23:39
ахаха https://github.com/tpoulsen/recursion_schemes/blob/master/lib/recursion_schemes.ex#L101

? animufag ?
27.07.2017
11:23:54
обычно в хаскель вакансиях требуется чтобы человек был выдающийся ещё во многих других областях

Dmitry
27.07.2017
11:24:17
в области жима от груди
меньше 120 не берут

Евгений
27.07.2017
11:24:32

Denis
27.07.2017
11:25:01

? animufag ?
27.07.2017
11:25:29

Alexander
27.07.2017
11:26:18
хорошо, а из других языков функционального программирования?

Dmitry
27.07.2017
11:27:18
ответ - иногда можно

Евгений
27.07.2017
11:27:47
Реальность такова, что чтобы попасть на работу в области, где нет дефицита рабочей силы, требуется иметь навыки большие, чем нужно для выполнения 90% работы
Правда всегда есть возможность блата

Dmitry
27.07.2017
11:28:02
но нубу может быть стоит не воротить нос от прочих популярных яп, потому что шансов устроиться туда и перестать быть нубом как-то выше

Евгений
27.07.2017
11:28:51
Хитрый план: пойти работать фронтендером и по-тихоньку внедрять purescript

Aleksey
27.07.2017
11:38:53
потихоничку внедрять purs в овебпаченные проекты на ангуляре - путь мазохиста

Denis
27.07.2017
11:39:09

? animufag ?
27.07.2017
11:44:00

Denis
27.07.2017
11:44:23

? animufag ?
27.07.2017
11:45:33
Ладно. Ещё раз. На елм можно пользоваться рамдой?

Denis
27.07.2017
11:51:58

Google

Alexander
27.07.2017
11:52:21

Евгений
27.07.2017
11:54:36
Ну мне кажется, что есть некий общий навык программирования
К тому же 90% вакансий, где требуют хаскель, требует знать и ещё ворох ЯП'ов

? animufag ?
27.07.2017
11:58:04

Denis
27.07.2017
11:58:15
вообще есть такая штука https://github.com/paf31/purescript-behaviors
еще и уравнения дифф решает)
https://github.com/paf31/purescript-behaviors/blob/master/test/Main.purs#L44-L58

kir
27.07.2017
12:04:04
Угу. Скалу, на которой ты будешь писать, например.
К тому же 90% вакансий, где требуют хаскель, требует знать и ещё ворох ЯП'ов

Alex
27.07.2017
12:08:31
в хаскельных вакансиях обычно требуют в нагрузку какой нибудь перл или кресты

Dmitry
27.07.2017
12:08:53
перл то кому сейчас мог понадобиться

? animufag ?
27.07.2017
12:09:22
ну "требуют перл" это ничего не значит
считай как "требуют баш"

Alex
27.07.2017
12:09:32
есть даже фанаты 5го, лично видел

Leonid
27.07.2017
12:23:50
без, как минимум, С в дополнение к любому ЯП можно только на яваскрипте фронтендить.

Alexander
27.07.2017
12:56:02
си или C++?

Dmitry
27.07.2017
12:56:19
си

Alexander
27.07.2017
12:56:28
и какой сейчас минимум в этих языках?
они же тоже на месте не стоят

Google

Denis
27.07.2017
13:01:23
как выразить bimap через dimap?

Alex
27.07.2017
13:04:00
подозреваю что еще Strong нужен

kir
27.07.2017
13:06:57
https://github.com/paf31/purescript-behaviors/blob/master/src/FRP/Event.js#L22 - мда, а мог одно из событий в Behavior загнать.

Leonid
27.07.2017
13:07:55
С по большому счёту стоит на месте, это плюсы разползаются

kir
27.07.2017
13:09:41
Bimap через dimap - никак.

Denis
27.07.2017
13:10:14

kir
27.07.2017
13:18:05
Да как-то оно не вяжется с теорией FRP - события-то существуют только в определённые моменты. А здесь какая-то хитроумная конструкция. Видимо для того, чтобы поднять в аппликатив.

Denis
27.07.2017
13:19:08
ну как бы да, чтобы сделать инстанс аппликатива

kir
27.07.2017
13:25:05
Проблема в том, что событие аппликативом не является. Он здесь, по сути, преобразовал их в behavior'ы (которые существуют в каждый момент времени), и хотя технически законы аппликатива должны работать - выглядит это хаком.

Denis
27.07.2017
13:26:27
ах! у event нельзя выразить pure

Aleksey
27.07.2017
13:28:42
Событие происходит во времени. Смысл складывать две чиселки-события, если они в разное время приходят?
Только если складыватель будет с защёлками
Но это уже не события какие-то получаются

Denis
27.07.2017
13:29:55
ну выходит у Event только Functor
у Behavior - Monad,Applicative,Functor

Aleksey
27.07.2017
13:30:41
Это больше "значения во времени", которые помнят последние мгновенное значение и распространяют по сети подписчиков изменения. Тогда аппликативное применение будет производиться по изменению любого из аргументов (для других берутся последние значения)

Denis
27.07.2017
13:30:41
но в purescript есть Apply и есть Applicative

Vasiliy
27.07.2017
13:31:02
ну почему же, например событие "дабл-клик" складывается из двух событий "клик"

Aleksey
27.07.2017
13:31:58
нет события никакого. Есть MouseDown :: InTime Bool
"клик" - это уже обработка с состоянием