@haskellru

Страница 1185 из 1551
Александр
12.05.2018
08:17:31
Ну а как их посчитать? Каждый байнд учитывать? Оценка в строчках более удобная

И вот, кстати, мысль. Если Free в ленивом стиле байндит одну цепочку к другой, пробегая по всем элементам первой, и отсюда лезет квадрат, то что мешает вычислись результат до какой-нибудь NF (поправьте, если ошибаюсь), и получить просто линейную цепочку?

Или я чего-то не понимаю?

Alexander
12.05.2018
08:27:17
ну для free реализации это разумно, а для обычной скорее число STM операций и длина беклога

Google
Александр
12.05.2018
08:27:54
Что такое "беклог"?

Alexander
12.05.2018
09:22:29
опс, transaction log

список действий, которые перепроверяются при коммите

в общем-то список read-ов разных тварей (и.к. повторный read уже локальный)

Denis
12.05.2018
09:39:39
https://github.com/jwiegley/ghc-dynamic-example

Dmitry
12.05.2018
10:44:36
Добрый день! Можете подсказать как в vscode рефакторинг (HaRe?) подключить? После установки hie рефакторинга нет (может не туда смотрю?).

Anatolii
12.05.2018
10:53:13
https://github.com/jwiegley/ghc-dynamic-example
Покажем кложуристам где раки зимуют, наверное

Denis
12.05.2018
10:53:44
Покажем кложуристам где раки зимуют, наверное
или так) https://github.com/strake/hint.hs/blob/master/examples/example.hs

Alister
12.05.2018
12:06:20
реквестирую статическую кложу

Alexander
12.05.2018
12:06:51
лень

Maxim
12.05.2018
12:08:35
Там кстати фейсбук выкатил свой тайпчекер для питона https://pyre-check.org А вы в кложу не можете

kana
12.05.2018
12:11:18
join .(N+1) liftAN - вроде как довольно частая вещь. Никто нигде не видел готового общепринятого хелпера/нейминга?

liftMN уже занят, можно взять liftAMN

Google
Maxim
12.05.2018
12:25:16
Народ, а hie обязательно должен быть собран тем же компилятором, что и проект? Если я соберу его системным гхц, а проект собираю стеком со своим компилером, будет работать? Версии обоих 8.0.2

Александр
12.05.2018
12:28:15
Обязательно :(

Denis
12.05.2018
12:29:49
мб можно под проект локально собирать

Ilya
12.05.2018
12:40:14
как проапдейтить поле структуры по "вынимающей функции"? допустим, есть такой тип data Crowd a = Crowd {first :: a, second :: a, third :: a} deriving Functor type Man = forall a. Crowd a -> a хочу написать такую функцию, но не знаю как forget :: Bounded a => Man -> Crowd a -> [Crowd a] forget = undefined -- forget first (Crowd _ s t) = [(Crowd f s t) | f <- [minBound..maxBound]] в комментарии к forget пример, как она должна работать. Но я не могу заматчить first. Если type Man выбран неудачно, то какой тут нужен на самом деле?

Maxim
12.05.2018
12:50:53
Обязательно :(
И как мне его собрать стеком под мой проект?

Я до сих пор не понимаю до конца где что и зачем хранит стек

Хоть на никс переходи

Кстати, никс может собирать мне только хаскель, а всякие зависимости брать из системы?

Alexander
12.05.2018
12:52:43
в .stack-work локальное в ,~/.stack глобальное

kana
12.05.2018
12:57:14
линзы же

Maxim
12.05.2018
12:57:32
в .stack-work локальное в ,~/.stack глобальное
Если в моем стек ямл и в стек ямл hie резолвер с одной и той же версией гхц, все автоматически будет так, как надо?

Ilya
12.05.2018
12:57:57
линзы же
вместо Crowd может быть более сложный тип, например список или ещё хз что. Всё равно линзы?

kana
12.05.2018
12:58:05
да

Ilya
12.05.2018
12:58:12
спасибо, пошёл читать

Ilya
12.05.2018
12:59:24
Добавил Enum a, все прошло
а что "прошло"? там undefined вместо функции

Maxim
12.05.2018
12:59:42
Инфраструктура на высоте

Google
Dmitry
12.05.2018
12:59:59
undefined закомментировал. Следующую сточку раскомментировал

kana
12.05.2018
13:01:39
такая функция не заработает, ну что вы

какой блин матчинг по функции

там first будет не тот геттер first, он любой геттер сматчит очевидно

Dmitry
12.05.2018
13:02:02
это правда :-)

Ilya
12.05.2018
13:02:07
какой блин матчинг по функции
ну я настолько не верил, что это сработает, что даже и пробовать не стал. но раз человек пишет, то сейчас попробую

Dmitry
12.05.2018
13:02:35
я просто думал, что проблема в компиляции

Ilya
12.05.2018
13:03:21
я просто думал, что проблема в компиляции
нет, проблема была апдейтить поле по заранее неизвестному аксессору

Dmitry
12.05.2018
13:04:53
lens или даже generic-lens

kana
12.05.2018
13:06:48




@Masteroid

Ilya
12.05.2018
13:09:27
оно на темплейтах работает, да?

за код спасибо, пошёл курить доки

kana
12.05.2018
13:13:04
можно и без TH



а можно через generic-lens через generic

@Masteroid - есть и моя маленькая простая реализация (которой бесконечно далеко до generic-lens, но идея понятна)

Пример использования символов в хаскеле - недолинзы: https://gist.github.com/kana-sama/733e3596fe2d88a58e1dc3f73868eb8b (Есть и пакет с чем-то подобным - generic-lens, там все инстансы генерируются) вот с генерацией через generic: https://gist.github.com/kana-sama/b7f8a2a405061260a2ee7beafbd59e32

Google
kana
12.05.2018
13:22:08
lens - старые кметовские линзы для всего подряд + генерация через template haskell в generic-lens линзы уже модные профункторные, генерация через Generic трогать новичку generic-lens имхо не нужно, как показывает время компиляции, это еще игрушка могу ошибаться

а нет, в generic не все профункторные

но либы скорее всего совместимы между собой, generic-lens просто поставляет код для generic-генерации линз, которые можно использовать уже через функции пакета lens

A64m
12.05.2018
13:26:26
постараюсь разобраться ? а чем package/lens отличается от package/generic-lens ? если в двух словах. Для человека, который ни с тем, ни с тем не знаком
в generic-lens линзы для использования с библиотекой lens которые работают, например, с полем с каким-то именем, с любым рекордом, в котором есть поле с таким именем. то же с именами конструкторов, номерами полей и параметров, полями определенного типа и т.д.

Инфраструктура на высоте
иде-релейтед инфраструктура для хаскеля, упрощенно говоря, отсутствует

Maxim
12.05.2018
13:44:18
Да я не только про иде, сборка тоже так себе. Стэк этот блин

A64m
12.05.2018
13:46:46
стек был получше в первые годы, когда они старались популярными стать, теперь он не особо развивается, глюкавый (и с этим ничего не делают), отстает от гхц-кабала(как библиотеки) на месяцы (в случае модулей, на годы)

Maxim
12.05.2018
13:48:54
Я наверное в один момент окончательно от этого устану и возьму никс

A64m
12.05.2018
13:49:29
там тоже настрадаться придется

Maxim
12.05.2018
13:49:52
Что стоит знать прежде чем попробую?

A64m
12.05.2018
13:51:24
я в нем не разбираюсь, я к тому что там все равно придется использовать какой-то хаскельный билд-тулинг (кабал инстол тот же) чтоб инкрементально компилять

Александр
12.05.2018
13:51:41
Стоит знать, что в чатике есть люди, склонные драматизировать

Maxim
12.05.2018
13:51:55
У никса есть какая-то интеграция со стаком

Может вместе они будут лучше

A64m
12.05.2018
13:52:43
ну она для того чтоб нехаскельные зависимости никсом ставить

Maxim
12.05.2018
13:53:12
Меня пока больше всего бесит, что какой-то пакет ломается на ровном месте и приходится удалять стек ворк

Нет бы пересобрать только что сломано и от него зависящие

А 200 зависимостей, среди которых плюсня, у меня долго собираются

Google
Александр
12.05.2018
13:55:06
Yuriy
12.05.2018
13:55:32
можно удалять не весь stack-work, а по частям

200 зависимостей должны быть не в stack-work, а в глобальном ~/.stack (который тоже можно убивать по частям)

Александр
12.05.2018
13:56:14
А зачем столько зависимостей?

Что они делают для проекта?

Maxim
12.05.2018
13:56:27
Кажется как-то так: делаю гит пулл, какая-то зависимость поменяла версию и пересобралась, а что-то установленное с ней не совместимо

Что они делают для проекта?
Я вместе с транзитивными считаю

Все что собирает стек короче

Yuriy
12.05.2018
13:57:03
А зачем столько зависимостей?
200 зависимостей — вполне нормально для среднего проекта. это же включая транзитивные

Maxim
12.05.2018
13:57:42
А как грохать частями?

Александр
12.05.2018
13:58:03
Наверное, нам на проекте очень везет.

Maxim
12.05.2018
13:58:04
Допустим у меня стеком собран lens и он сломался. Что удалять?

lens просто для примера

A64m
12.05.2018
13:58:22
А зачем столько зависимостей?
это шутка что-ли? какой-нибудь сервис на хаскеле будет от сотен пакетов зависть просто чтоб привет мир отвечать

Maxim
12.05.2018
13:58:26
Там же ещё какой-то package db, нельзя наверное просто удалить

Yuriy
12.05.2018
13:58:34
А как грохать частями?
что именно сломалось? вываливается сообщение про какой-то конкретный файл?

Maxim
12.05.2018
13:58:38
что именно сломалось? вываливается сообщение про какой-то конкретный файл?
У меня сейчас нет под рукой сообщений) обычно при линковке финального бинарника не находится какого-то символа где-то

Mink
12.05.2018
14:00:48
Хех, hie, как никто другой помогает хасклю избежать успеха

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