
A64m
20.04.2018
10:05:37
нет, это не норма, так мало что делает, но ничего страшного в нем нет

Evgeny
20.04.2018
10:07:02

A64m
20.04.2018
10:07:58
надо сделать так чтоб программа не падала
данных меньше и т.д.

Google

Alexander
20.04.2018
10:11:17
запустить с -M1G
оно свалится но файлик будет

Evgeny
20.04.2018
10:13:48
Спасибо. Попробую.

? animufag ?
20.04.2018
10:20:02

Александр
20.04.2018
10:22:55
А с линзами амперсанд не юзают разве?

Aleksey
20.04.2018
10:23:07
Линзокод в сполшных амперсандах

A64m
20.04.2018
10:40:48
да, с линзами нормально юзать, там это рекомендуемый подход

IC
20.04.2018
10:54:10
есть ли жизнь в Operational или можно сразу за freer браться?

Alexander
20.04.2018
10:55:10
мы использовали, почему не знаю
https://www.reddit.com/r/haskell/comments/4cfxri/relationship_between_operational_monad_and_oleg/

IC
20.04.2018
10:57:20
> Freer is just the "Reflection without Remorse" construction applied to the Operational monad, rather than the Free monad.
опа

Alexander
20.04.2018
10:59:00
да

IC
20.04.2018
10:59:26
нужно больше бананов и линз

Google

kana
20.04.2018
11:00:44
по моему тут сильный диснейминг произошел
freer-монада сама по себе это и есть operational, но я сходу не нашел пакетов с ней
data Freer f a where
Pure :: a -> Freer f a
Free :: f x -> (x -> Freer f a) -> Freer f a
а freer-пакеты - это уже реализации расширяемых эффектов поверх freer + open union

Александр
20.04.2018
11:04:41
Опять вы про фри монады. @qnikst же вчера на митапе сказал, что они не нужны, что тут еще обсуждать.

kana
20.04.2018
11:05:06
кекб

Alexander
20.04.2018
11:05:10
https://markkarpov.com/post/free-monad-considered-harmful.html
kana дело говорит выше

Александр
20.04.2018
11:06:32
Надо написать уже статейку "Posts "X considered harmful" considered harmful"

A64m
20.04.2018
11:10:19

Александр
20.04.2018
11:11:49
ну наконец-то
Да. Я теперь буду рассказывать на докладах, что вот так не нужно фри монаду применять, а еще вот так и вот так
Вчера уже это начал делать. Не шутка.

Alexander
20.04.2018
11:17:22

Александр
20.04.2018
11:18:07
Хорошо. Значит, у меня есть единомышленник, живем.

A64m
20.04.2018
11:34:53
о, я смотрю уже заявлено что до заморозки фич 8.6 6 недель

Alexander
20.04.2018
11:36:32
второй багфикс релиз

A64m
20.04.2018
11:42:28
причем, к примеру, OR-паттерны отправили в рулевой комитет (повторно) 3-его марта, и комитетчик, который должен представить заявку комитету до сих пор не сделал этого

Евгений
20.04.2018
11:43:21
Маяковский - "Бюрократиада".txt

A64m
20.04.2018
11:53:16
что же они делают-то, не хочу второй релиз без фич

Ivan
20.04.2018
12:05:00
привет всем, помогите пожалуйста разобраться.
Такой вопрос: я в инсте достаточно внимательно слушал дискретку, по этому я знаю что такое моноид и гомоморфизм. Увы, теории категорий у нас не было, по этому с эндофункторами сложнее, но я вроде почитал, как я понял стрелка=гомоморфизм=функтор, т.е. просто отображение одного в другое. Эндофунктор - отображение в себя.
Но что есть категория эндофункторов и как там найти моноид - тут я не могу допетрить. Можете на пальцах примерчик подсказать?
Не обязательно связанный с программированием и желательно без использования хаскеля, с ним у меня туго...


Евгений
20.04.2018
12:09:59
привет всем, помогите пожалуйста разобраться.
Такой вопрос: я в инсте достаточно внимательно слушал дискретку, по этому я знаю что такое моноид и гомоморфизм. Увы, теории категорий у нас не было, по этому с эндофункторами сложнее, но я вроде почитал, как я понял стрелка=гомоморфизм=функтор, т.е. просто отображение одного в другое. Эндофунктор - отображение в себя.
Но что есть категория эндофункторов и как там найти моноид - тут я не могу допетрить. Можете на пальцах примерчик подсказать?
Не обязательно связанный с программированием и желательно без использования хаскеля, с ним у меня туго...
Есть чат про теорию категорий. А вообще стрелка и функтор это явления разного порядка. Стрелка находится внутри категории, а функтор между категориями.
Если можно математический пример — то, гомоморфизмы групп это стрелки внутри категории групп. А вот взятие коммутанта группы это функтор из категории групп в неё саму
https://t.me/ru_catheory

Google

Ilya
20.04.2018
12:28:15

Denis
20.04.2018
12:28:49

Андрей
20.04.2018
12:28:54
+

Ilya
20.04.2018
12:29:31
имхо лучше наоборот идти, от хаскеля к категорийному определению монады, если у человека возникают проблемы всё это представить

Андрей
20.04.2018
12:29:38
любите монады в хаскеле а не хаскель в монадах (С кто-то из театралов)

Евгений
20.04.2018
12:30:05

Андрей
20.04.2018
12:30:20
от хаскеля можно прийти к чему угодно - от классов типов до бурито

Евгений
20.04.2018
12:30:35
К пицце можно?

Ilya
20.04.2018
12:30:38
а бэкграунда по ТК у него нет

Евгений
20.04.2018
12:31:18
Многие математики и программировать-то не умеют

Ilya
20.04.2018
12:31:29
умеют, они просто этого ещё не знают:)

Евгений
20.04.2018
12:31:33
R! (я не математик, конечно)
И умею программировать (более менее)
Но всё равно

Ilya
20.04.2018
12:32:27
ну там явно не математик писал тоже:)
"курс по дискретке в инсте" /= математик

Daniel
20.04.2018
12:32:58
странная демагогия идет

Ilya
20.04.2018
12:33:44
дидактика обычная

Николай
20.04.2018
12:34:25
Проф. программеры на Haskell, вот подскажите, как вы живете без "умного автодополнения"? К примеру, пишите вы код, в одном месте которого появляется некое Maybe a, и вы помните, что есть какая-то функция, которая возвращает вложенное значение или дефолтовое при отсутствии первого, к примеру, fmap ??? envLookup "REDIS_HOST". Как вы находите функцию Data.Maybe.maybe? В ООП языках просто: у вас всегда есть контекст (объект), от которого "пляшет" автодополнение. К примеру, в скале вы пишите sys.env.get("REDIS_HOST"), затем жмете точку и получаете список методов объекта Option. А как в хаскеле, неужели каждый раз лезете в справочник или хугл?

Google

Евгений
20.04.2018
12:35:23
Проф. программеры на Haskell, вот подскажите, как вы живете без "умного автодополнения"? К примеру, пишите вы код, в одном месте которого появляется некое Maybe a, и вы помните, что есть какая-то функция, которая возвращает вложенное значение или дефолтовое при отсутствии первого, к примеру, fmap ??? envLookup "REDIS_HOST". Как вы находите функцию Data.Maybe.maybe? В ООП языках просто: у вас всегда есть контекст (объект), от которого "пляшет" автодополнение. К примеру, в скале вы пишите sys.env.get("REDIS_HOST"), затем жмете точку и получаете список методов объекта Option. А как в хаскеле, неужели каждый раз лезете в справочник или хугл?
find, awk, grep

Николай
20.04.2018
12:36:18
Ну я серьезно. Просто обратил внимание, что постоянно отвлекаюсь на поиск функций в справочнике, и задумался, а как у других воркфлоу выглядит.

Admin
ERROR: S client not available

Андрей
20.04.2018
12:36:39
хугл друг

Евгений
20.04.2018
12:38:02
Ну я когда писал на сабже, то держал локальный хугл в консоле

Николай
20.04.2018
12:40:06
Все-равно не быстро получается, в сравнении с той же скалой. Постоянно отвлекаться от кода и редактора и лезть в браузер или консоль.. а с автокомплишном в хаскельных редакторах пока все плохо?

anton
20.04.2018
12:40:12
новый гхц чуть заранее вышел, наверное, к выпуску HCAR, чтобы успеть поведать про это
там на след неделе дедлайн

Ivan
20.04.2018
12:43:54


kana
20.04.2018
12:50:43
Проф. программеры на Haskell, вот подскажите, как вы живете без "умного автодополнения"? К примеру, пишите вы код, в одном месте которого появляется некое Maybe a, и вы помните, что есть какая-то функция, которая возвращает вложенное значение или дефолтовое при отсутствии первого, к примеру, fmap ??? envLookup "REDIS_HOST". Как вы находите функцию Data.Maybe.maybe? В ООП языках просто: у вас всегда есть контекст (объект), от которого "пляшет" автодополнение. К примеру, в скале вы пишите sys.env.get("REDIS_HOST"), затем жмете точку и получаете список методов объекта Option. А как в хаскеле, неужели каждый раз лезете в справочник или хугл?
а таких кейсов обычно не возникает по моему
кейсов когда аргументы отправил, а в какую функцию не знаешь. Но если возникает, то хугл, да (который можно открыть из спотлайт-аналога каким хоткеем), что не очень быстро, но из-за крайней редкости таких ситуаций довольно приемлемо


A64m
20.04.2018
12:55:28
8.6, кстати, будет подсказывать варианты для дырки (если фича пройдет, не зарежут из-за тормознутости)
но не факт, что какие-то ленгвиджсервисы для хаскеля поддержать это в виде автокомплита


kana
20.04.2018
12:59:53
привет всем, помогите пожалуйста разобраться.
Такой вопрос: я в инсте достаточно внимательно слушал дискретку, по этому я знаю что такое моноид и гомоморфизм. Увы, теории категорий у нас не было, по этому с эндофункторами сложнее, но я вроде почитал, как я понял стрелка=гомоморфизм=функтор, т.е. просто отображение одного в другое. Эндофунктор - отображение в себя.
Но что есть категория эндофункторов и как там найти моноид - тут я не могу допетрить. Можете на пальцах примерчик подсказать?
Не обязательно связанный с программированием и желательно без использования хаскеля, с ним у меня туго...
функтор - отображение между ВСЕМИ объектами одной категории в объекты другой, а так же отображение всех морфизмов в морфизмы другой категории с сохранением доменов и кодоменов (после применения функтора к объектам домена и кодомена)
эндофунктор - когда результатирующая категория та же самая
можем ввести единичный эндофунктор, который переводит каждый объект в тот же объект, (следовательно и каждый морфизм в тот же морфизм)
а так же можем ввести композицию эндофункторов (эндофунктор G.F отображает объект сначала с помощью эндофунктора F, а потом с помощью G)
категория эндофункторов - такая категория, где объекты - эндофункторы, какие там морфизмы сейчас не так важно. Множество объектов, единичный эндофунктор и композиция эндофункторов - вот тебе и моноид (моноидальная категория, где . - бифунктор, единичный эндофунктор - нейтральный элемент)


A64m
20.04.2018
13:02:25
https://phabricator.haskell.org/D4444

Vasiliy
20.04.2018
13:10:31
т.е. я правильно понимаю, что прям ф-ции будет подсказывать?
> It also allows us to find suggestions such as maximum for holes of type
Ord a => a -> [a]
, and max when looking for a match for the hole in
g = foldl1 _, where g :: Ord a => [a] -> a
(я все не читал)

A64m
20.04.2018
13:12:18
да, и функции с новыми дырками

Denis
20.04.2018
13:12:34
дырявые функции

Google


A64m
20.04.2018
13:16:41
When the flag `-frefinement-level-substitutions=n` where `n > 0` is passed, we
also look for valid refinement substitutions, i.e. substitutions that are valid,
but adds more holes. Consider the following:
f :: [Integer] -> Integer
f = _
Here the valid substitutions suggested will be (with the
`-funclutter-valid-substitutions` flag set):
Valid substitutions include
f :: [Integer] -> Integer
product :: forall (t :: * -> *).
Foldable t => forall a. Num a => t a -> a
sum :: forall (t :: * -> *).
Foldable t => forall a. Num a => t a -> a
maximum :: forall (t :: * -> *).
Foldable t => forall a. Ord a => t a -> a
minimum :: forall (t :: * -> *).
Foldable t => forall a. Ord a => t a -> a
head :: forall a. [a] -> a
(Some substitutions suppressed;
use -fmax-valid-substitutions=N or -fno-max-valid-substitutions)
When the `-frefinement-level-substitutions=1` flag is given, we additionally
compute and report valid refinement substitutions:
Valid refinement substitutions include
foldl1 _ :: forall (t :: * -> *).
Foldable t => forall a. (a -> a -> a) -> t a -> a
foldr1 _ :: forall (t :: * -> *).
Foldable t => forall a. (a -> a -> a) -> t a -> a
head _ :: forall a. [a] -> a
last _ :: forall a. [a] -> a
error _ :: forall (a :: TYPE r).
GHC.Stack.Types.HasCallStack => [Char] -> a
errorWithoutStackTrace _ :: forall (a :: TYPE r). [Char] -> a
(Some refinement substitutions suppressed;
use -fmax-refinement-substitutions=N or -fno-max-refinement-substitutions)
Which are substitutions with holes in them. This allows e.g. beginners to
discover the fold functions and similar.


Vasiliy
20.04.2018
13:30:33
это оч круто, не тепрится попробовать
можно вообще ничего не помнить и не хуглить – все само будет подсказываться :)

A64m
20.04.2018
13:35:36
только импортированное же

Vasiliy
20.04.2018
13:36:02
хотя да, там что-то было про bindings
не все, хотя все и не возможно, даже, наверное, среди зависимостей

A64m
20.04.2018
13:36:13
но новый хугл все рано нормально не ищет, так что можно не хуглить уже сейчас

Denis
20.04.2018
13:38:00

A64m
20.04.2018
13:38:08
ничего

Yuuri
20.04.2018
13:38:59
А что за новый хугл и чем он отличается от старого?

A64m
20.04.2018
13:39:40
ну, он, конечно, уже давно не новый.
отличается он тем, что может загружать базы заметных размеров, так что стало возможным искать по стекеджевому срезу и все такое

Vasiliy
20.04.2018
13:41:34
мм, а можно ссылку на "новый" хугл? это не https://www.haskell.org/hoogle/ же? и не hayoo?

A64m
20.04.2018
13:42:28
это старый вроде еще