@haskellru

Страница 1263 из 1551
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
Ох

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

A64m
13.06.2018
13:11:50
Да:) Ну наверное я опять хочу странного
есть такая экспериментальная фича, которая не зарелизена, сейчас она только макросами реализована

Да:) Ну наверное я опять хочу странного
http://hackage.haskell.org/package/deriving-compat-0.4.2/docs/Data-Deriving-Via.html только для 8.2 и 8.4

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, и всё получить "сразу", а можно хитровыдуманно, зато не портить типы

http://hackage.haskell.org/package/deriving-compat-0.4.2/docs/Data-Deriving-Via.html только для 8.2 и 8.4
Наверное deriving via это то что нужно, вечером поподробнее посмотрю, спасибо

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

Ilya
13.06.2018
13:54:19
что значит изуродовать/портить?
Заменять встроенную в язык композицию конструктором Compose, выражать встроенную в язык рекурсию конструктором Fix.

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

IC
13.06.2018
14:21:54
облегчают, да

в recursion-schemes есть дерайвилка базового функтора для cata. но катаморфизм это самый скучный сценарий использования фиксов

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 полиморфная

так что тут ты не прав) нет дерайвилки для ката

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

бейджики под них были

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
http://hackage.haskell.org/package/servant-dhall ну всё
я тут натурально пальцем у виска кручу

Евгений
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
Я тут мучаю http://hackage.haskell.org/package/algebraic-graphs-0.1.1.1. Я правильно понимаю, что в этой либе есть стопицот способов состряпать _новый_ граф и ни одного способа сделать запрос "дай мне список вершин, достижимых из данной"?
это вроде такглесс-файнл дсл для описания графов, его по идее надо использовать с бекендом - графовой библиотекой, в которой такие алгоритмы есть

Евгений
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
это вроде такглесс-файнл дсл для описания графов, его по идее надо использовать с бекендом - графовой библиотекой, в которой такие алгоритмы есть
понятно, спасибо. Просто это была единственная либа, в которой вершины графа - не инты, а произвольные типы с вменяемыми ограничениями (Eq, Ord, Show)

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

Yuriy
13.06.2018
15:46:43
это вроде такглесс-файнл дсл для описания графов, его по идее надо использовать с бекендом - графовой библиотекой, в которой такие алгоритмы есть
не нужен отдельный бэкенд λ> :m + Algebra.Graph λ> vertices [1, 2] * vertices [3, 4] Connect (Overlay (Vertex 1) (Vertex 2)) (Overlay (Vertex 3) (Vertex 4))

Google
Andrei
13.06.2018
15:46:44
https://hackage.haskell.org/package/dhall-1.14.0/docs/Dhall-Tutorial.html
выглядит примерно так: “типы, угу. импорты… угу, надо… стоп, IPFS?! …списки, optionals угу… о, records! функции… функции?! WHY.jpg?!”

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

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

Timofey
13.06.2018
15:49:47
как это единственная?
fgl - там инты, containers - тоже

как это единственная?
если я что-то пропустил из популярных либ - я только буду рад

Andrei
13.06.2018
15:50:49
Ну, как в никсе же
если оно на nix 1в1 мапится, надо брать. в никс.

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
тот же граф в контейнерах при построении возвращает же функцию которая дает узел по этому инту
да, похоже, я слишком бегло прочитал доки на хакадже. Теперь там надо научиться мерджить два графа=)

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

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

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

интересно, что для графа из контейнеров вроде инстанса нет, хотя контейнеры все равно в зависимостях

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