Евгений
И умею программировать (более менее)
Евгений
Но всё равно
Ilya
ну там явно не математик писал тоже:)
Ilya
"курс по дискретке в инсте" /= математик
Danila Matveev
странная демагогия идет
Ilya
дидактика обычная
Николай
Проф. программеры на Haskell, вот подскажите, как вы живете без "умного автодополнения"? К примеру, пишите вы код, в одном месте которого появляется некое Maybe a, и вы помните, что есть какая-то функция, которая возвращает вложенное значение или дефолтовое при отсутствии первого, к примеру, fmap ??? envLookup "REDIS_HOST". Как вы находите функцию Data.Maybe.maybe? В ООП языках просто: у вас всегда есть контекст (объект), от которого "пляшет" автодополнение. К примеру, в скале вы пишите sys.env.get("REDIS_HOST"), затем жмете точку и получаете список методов объекта Option. А как в хаскеле, неужели каждый раз лезете в справочник или хугл?
Николай
Ну я серьезно. Просто обратил внимание, что постоянно отвлекаюсь на поиск функций в справочнике, и задумался, а как у других воркфлоу выглядит.
Andrey
хугл друг
Евгений
Ну я когда писал на сабже, то держал локальный хугл в консоле
Николай
Все-равно не быстро получается, в сравнении с той же скалой. Постоянно отвлекаться от кода и редактора и лезть в браузер или консоль.. а с автокомплишном в хаскельных редакторах пока все плохо?
anton
новый гхц чуть заранее вышел, наверное, к выпуску HCAR, чтобы успеть поведать про это
anton
там на след неделе дедлайн
Ivan
У человека математический бекграунд, он это сразу сказал
не, вообще учился я на говнокодера, просто я не равнодушен к математике, хотя на данный момент там отношения скорее "всё сложно" =)
кана
кейсов когда аргументы отправил, а в какую функцию не знаешь. Но если возникает, то хугл, да (который можно открыть из спотлайт-аналога каким хоткеем), что не очень быстро, но из-за крайней редкости таких ситуаций довольно приемлемо
A64m
8.6, кстати, будет подсказывать варианты для дырки (если фича пройдет, не зарежут из-за тормознутости)
A64m
но не факт, что какие-то ленгвиджсервисы для хаскеля поддержать это в виде автокомплита
кана
привет всем, помогите пожалуйста разобраться. Такой вопрос: я в инсте достаточно внимательно слушал дискретку, по этому я знаю что такое моноид и гомоморфизм. Увы, теории категорий у нас не было, по этому с эндофункторами сложнее, но я вроде почитал, как я понял стрелка=гомоморфизм=функтор, т.е. просто отображение одного в другое. Эндофунктор - отображение в себя. Но что есть категория эндофункторов и как там найти моноид - тут я не могу допетрить. Можете на пальцах примерчик подсказать? Не обязательно связанный с программированием и желательно без использования хаскеля, с ним у меня туго...
функтор - отображение между ВСЕМИ объектами одной категории в объекты другой, а так же отображение всех морфизмов в морфизмы другой категории с сохранением доменов и кодоменов (после применения функтора к объектам домена и кодомена) эндофунктор - когда результатирующая категория та же самая можем ввести единичный эндофунктор, который переводит каждый объект в тот же объект, (следовательно и каждый морфизм в тот же морфизм) а так же можем ввести композицию эндофункторов (эндофунктор G.F отображает объект сначала с помощью эндофунктора F, а потом с помощью G) категория эндофункторов - такая категория, где объекты - эндофункторы, какие там морфизмы сейчас не так важно. Множество объектов, единичный эндофунктор и композиция эндофункторов - вот тебе и моноид (моноидальная категория, где . - бифунктор, единичный эндофунктор - нейтральный элемент)
A64m
https://phabricator.haskell.org/D4444
Vasiliy
т.е. я правильно понимаю, что прям ф-ции будет подсказывать? > 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
да, и функции с новыми дырками
Зигохистоморфный
дырявые функции
A64m
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
это оч круто, не тепрится попробовать можно вообще ничего не помнить и не хуглить – все само будет подсказываться :)
A64m
только импортированное же
Vasiliy
хотя да, там что-то было про bindings не все, хотя все и не возможно, даже, наверное, среди зависимостей
A64m
но новый хугл все рано нормально не ищет, так что можно не хуглить уже сейчас
A64m
ничего
Ю ли я? 🤔
А что за новый хугл и чем он отличается от старого?
A64m
ну, он, конечно, уже давно не новый.
A64m
отличается он тем, что может загружать базы заметных размеров, так что стало возможным искать по стекеджевому срезу и все такое
Vasiliy
мм, а можно ссылку на "новый" хугл? это не https://www.haskell.org/hoogle/ же? и не hayoo?
A64m
это старый вроде еще
Зигохистоморфный
это старый вроде еще
я юзал в основном http://hayoo.fh-wedel.de/
Зигохистоморфный
а вот вроде новый типа https://hoogle.haskell.org/
Vasiliy
хм, забавно, спасибо, первый раз вижу :) похоже скоро hayoo будет не нужен, если я правильно все понял
A64m
а новый это `https://www.stackage.org/lts-11.5/hoogle?q=` например
Зигохистоморфный
кана
там не очень понятно какая версия хугла в нем используется
A64m
это же стакедж обычный)
нет, это запрос для поиска, можно прямо дальше писать что искать надо
Зигохистоморфный
Зигохистоморфный
но есть пакеты, которых нет на стакедже
A64m
там не очень понятно какая версия хугла в нем используется
да если попробовать поискать по типу - сразу понятно, у нового там выдается адище
Mi Shа
Посоветуйте, пожалуйста, что почитать/посмотреть для ознакомления с Free монадой?
NC
Роскомнадзор заблочил stackage.org ?
NC
Такой подлянки я даже не ждал
Leonid 🦇
Короче третий полный метр смешариков можно не смотреть. Так себе, как обычно.
Viktor
Роскомнадзор заблочил stackage.org ?
они по очереди блочат все репозитории билд-тулов потихоньку, во всех чатах жалуются
NC
жизнь через vpn
Quet
Роскомнадзор заблочил stackage.org ?
угу, вчера еще недоступен был
NC
Может мы напишем террористам отдельный мессенджер, ркн его заблочит радостно и ркн отстанет от телеги?
IC
интересы террористов не учтены. вангую проблемы с успешностью этого решения.
NC
эх, а погружаться в предметную область чтот не хочется
NC
придётся жить через впн
Viktor
придётся жить через впн
хостинги впн тоже потихоньку лочат.. DO, scaleway
NC
Свой подниму на малоизвестном vps провайдере
NC
ну или эммигрирую к чертям
IC
у чертей не банят телегу?
Viktor
у чертей - нет
NC
Ходят слухи, у них ещё средняя зп выше
NC
у меня работает
Чтобы было честно, будь в рф и выключи впн
Ilya
я в рф, провайдер ДОМ.ру
NC
Во, записываем провайдеров, которые саботажники
Алексей
У меня провайдер тоже сботирует
Алексей
https://www.seven-sky.net/
Ilya
а какой IP у этого сайта? можно проверить по реестру
Ilya
раньше я узнавал IP через ping или 2ip.ru, но что-то со stackage.org оба этих способа не работают
Ilya
перестаю понимать современные интернеты :(
Алексей
$ host stackage.org 8.8.8.8 stackage.org has address 52.71.209.192 stackage.org has address 52.72.159.235
Ilya
а если перейти по ним, там просто
Ilya
Ilya
так что не всё так просто