
A64m
13.06.2018
13:10:21
короче говоря вот старый
https://www.haskell.org/hoogle/?hoogle=%28a+-%3E+b%29+-%3E+f+a+-%3E+f+b
вот новый
https://hoogle.haskell.org/?hoogle=(a%20-%3E%20b)%20-%3E%20f%20a%20-%3E%20f%20b
можно так, чтоб честнее было https://hoogle.haskell.org/?hoogle=%28a+-%3E+b%29+-%3E+f+a+-%3E+f+b&scope=package%3Abase

Aleksey
13.06.2018
13:11:02
Ох

Ilya
13.06.2018
13:11:04

Google

Ilya
13.06.2018
13:11:34
Compose выглядит вкусно, но нужно переписывать типы через него..

A64m
13.06.2018
13:11:50

kana
13.06.2018
13:19:08

A64m
13.06.2018
13:21:12
самая дичь, конечно, что хугл и по полностью квалифицированному имени иной раз не находит то что нужно первым в списке
причем года три назад митчелл говорил что это все временно, потому что новый хугл недоделанный, но теперь это временное уже постоянно

kana
13.06.2018
13:23:36
алиас на compose?
Если ты про то, что у тебя уже много где твой Fun
{-# LANGUAGE PatternSynonyms #-}
import Data.Functor.Compose
type Fun f e a = Compose ((->) e) f a
getFun :: Fun f e a -> e -> f a
getFun (Compose f) = f
pattern Fun :: (e -> f a) -> Fun f e a
pattern Fun f = Compose f
main :: IO ()
main = print $ (getFun . fmap show . Fun $ Just) 10
и потом постепенно переписывать
но вообще это ересь конечно


Ilya
13.06.2018
13:29:31
и потом постепенно переписывать
но вообще это ересь конечно
Ну мне это чем-то напоминает ситуацию с cata. С одной стороны мы можем изуродовать тип данных, переписав его через Fix, и получив cata бесплатно. А можем заюзать расширение (не помню название), которое само выведет cata для твоего типа. Первый подход мне раньше больше нравился, как-то более наглядно и академично, что ли. Но второй тупо удобнее, (при условии, что расширение не фейлит)
Вот и здесь, можно переписать data через Compose, и всё получить "сразу", а можно хитровыдуманно, зато не портить типы

IC
13.06.2018
13:51:54
что значит изуродовать/портить?

Ilya
13.06.2018
13:54:19

Google

Ilya
13.06.2018
13:55:26
Ну наверное паттерн-синонимы облегчают дело, я с ними не работал пока

IC
13.06.2018
14:21:54
облегчают, да
в recursion-schemes есть дерайвилка базового функтора для cata. но катаморфизм это самый скучный сценарий использования фиксов

Denis
13.06.2018
14:28:39

IC
13.06.2018
14:29:24
cata :: (Base t a -> a) -> t -> a

Denis
13.06.2018
14:29:53
и?

IC
13.06.2018
14:30:17
дерайвишь базовый функтор, ката работает с ним

Denis
13.06.2018
14:30:40
cata полиморфная
так что тут ты не прав) нет дерайвилки для ката

IC
13.06.2018
14:31:13

Alister
13.06.2018
14:32:30
тут случайно не будет бесконечной рекурсии?

Yuuri
13.06.2018
14:37:31
Вроде нет, shadowing же

Abbath
13.06.2018
14:44:47
Кто в англочате настоящий иностранец?

A64m
13.06.2018
14:45:17
Курт Семпсон

Abbath
13.06.2018
14:45:26
Он там один такой?
А Yasuaki бурят штоле?

A64m
13.06.2018
14:46:11
Кудо Ясуаки еще

Alexander
13.06.2018
14:46:17
Николас Кларке англичанин
Кларк

Google

Leonid
13.06.2018
14:53:36
https://github.com/typeable/stackage2nix/wiki/stackage2nix-1.0#stack2nix-codename
продолжает игнорировать сущетсвование https://github.com/input-output-hk/stack2nix

Alexander
13.06.2018
15:03:35
первый появился раньше второго
непонятно почему он должен не игнорировать второй
кстати, почему Serokell не было на ZuriHac
бейджики под них были

Aleksey
13.06.2018
15:05:49

Leonid
13.06.2018
15:07:22
у меня вопрос к именованию
и так уже nix-deploy три десятка

kana
13.06.2018
15:20:11
fix - тоже не замена встроенной в язык рекурсии
fix - анонимная рекурсия
Compose - бесплатная композиция двух любых функторов

Leonid
13.06.2018
15:31:17
http://hackage.haskell.org/package/servant-dhall ну всё

Anatolii
13.06.2018
15:31:36
вот да фак
зачем это делать?

Denis
13.06.2018
15:33:56

Евгений
13.06.2018
15:35:08
Надо посмотреть на этот ваш дхулл. Раз его все ненавидят, значит в нём что-то естт

Denis
13.06.2018
15:36:30
не все ненавидят, видишь ведь какую мазафаку творят

A64m
13.06.2018
15:36:30
1) нарабатываешь репутацию годами
2) делаешь популярным в узких кругах самый страшный типизированный язык для описания конфигов, какой только можешь придумать
3) ???

Denis
13.06.2018
15:36:47
4) пригорело

Timofey
13.06.2018
15:37:33
Я тут мучаю http://hackage.haskell.org/package/algebraic-graphs-0.1.1.1. Я правильно понимаю, что в этой либе есть стопицот способов состряпать _новый_ граф и ни одного способа сделать запрос "дай мне список вершин, достижимых из данной"?

Google

Andrei
13.06.2018
15:37:35
но типизированный язык для конфигов всё-таки нужен, так?

A64m
13.06.2018
15:37:48
да, в этом и проблема

Евгений
13.06.2018
15:38:05
Можно юзать агду

Andrei
13.06.2018
15:38:17
и альтернатив Dhall на текущий момент таки нет?

Denis
13.06.2018
15:38:41
нужен нормальный валидатор для конфигов
часто этого достаточно

A64m
13.06.2018
15:38:53

Евгений
13.06.2018
15:39:07
Пока выглядит как никс
https://hackage.haskell.org/package/dhall-1.14.0/docs/Dhall-Tutorial.html
Никс ебанутый, конечно, но привычный

A64m
13.06.2018
15:39:33
ну, он вроде не такой страшный как никс

Timofey
13.06.2018
15:39:55
на местном митапе как-то парень один рассказывал про попытки типизировать никс.
Было забавно

Anatolii
13.06.2018
15:40:13
так даже деньги собрали на это дело

Andrei
13.06.2018
15:40:32
Можно юзать агду
только раскладку сначала запилить со значками и наклейки на клавиатуру наклеить

Евгений
13.06.2018
15:41:38

Vladimir
13.06.2018
15:42:11
А наклейки-то зачем?

Timofey
13.06.2018
15:42:29

A64m
13.06.2018
15:46:12
как это единственная?

Yuriy
13.06.2018
15:46:43

Google

Andrei
13.06.2018
15:46:44

A64m
13.06.2018
15:47:04
тот же граф в контейнерах при построении возвращает же функцию которая дает узел по этому инту

Евгений
13.06.2018
15:49:34

Yuriy
13.06.2018
15:49:38
нужен
почему у меня работает без отдельного?

Timofey
13.06.2018
15:49:47

Yuriy
13.06.2018
15:50:21

Andrei
13.06.2018
15:50:49

A64m
13.06.2018
15:51:08

Евгений
13.06.2018
15:51:11
Ну, вряд ж мапится

A64m
13.06.2018
15:51:22

Yuriy
13.06.2018
15:51:59

A64m
13.06.2018
15:53:12
и какие там алгоритмы есть, используюшие только эту библиотеку?

Yuriy
13.06.2018
15:56:11
начальный вопрос был про получение смежных вершин, эта операция есть

A64m
13.06.2018
15:57:21
достижимых же

Timofey
13.06.2018
15:57:40

Yuriy
13.06.2018
16:08:04
достижимых же
да, неправильно прочитал. но всё равно там не один DSL, с ним несколько конкретных представлений. алгоритмов почти нет.

A64m
13.06.2018
16:15:48
это не практичные инстансы для которых какие-то алгоритмы на графах есть, а аст, несколько интерпретаторов и прочие демонстрационные имплементации из статьи, вроде той что на интмапах
интересно, что для графа из контейнеров вроде инстанса нет, хотя контейнеры все равно в зависимостях