
Alexander
24.01.2018
15:39:10
все плохо
universum терпим

Index
24.01.2018
15:51:34
Готовые прелюды от беса, ну то есть с universum понятно, это просто то, что в Serokell используется, а так у каждого проекта свои нужды
Берешь и делаешь свой Prelude per project

Google

Index
24.01.2018
15:51:52
со всеми utils и т.д.
еще Хаскелю не хватает teaching prelude без тайпклассов

Антон
24.01.2018
18:30:46

Leonid
24.01.2018
18:34:00
Пост сноймана был подгадан по времени для эффекта "И тут появляюсь я, весь в белом". Судя по реддиту - сработало. Злые кабалисты оказались параноиками и истеричками

Pineapple
24.01.2018
18:34:15

Alexander
24.01.2018
18:35:08
даваше

Pig
24.01.2018
18:38:16

Denis
24.01.2018
18:45:41
а есть ли такая?

kana
24.01.2018
18:46:03
где map = fmap?
universum же

Alexander
24.01.2018
18:46:16
idris?
==29619== Memcheck, a memory error detector
==29619== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==29619== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==29619== Command: ./88
==29619==
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose name matches the pattern: strlen
valgrind: in an object with soname matching: ld-linux-x86-64.so.2
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-x86-64.so.2
кто-нить такое видел?

Google

Alexander
24.01.2018
19:07:30
куда копать?
а понял
glibc с debug символами пересобрать
блин лениво

Kirill
24.01.2018
19:35:19
Я тут видел срачи про редакторы... так вот, кто-то же пользуется vscode? Поставил и я её себе на nixos. Включил плагин haskelly, тоже кто-то тут хвалил вроде бы. Только вот не работает. Пробую навести на символ курсор — мне пустой квадратик показывает. Go to definition не работает, при этом в консоль свою браузерную пишет:
ERR Cannot read property 'slice' of null: TypeError: Cannot read property 'slice' of null
at HaskellDefinitionProvider.extractRange (~/.vscode/extensions/UCL.haskelly-0.4.29/out/src/Providers/Definition/index.js:42:13)

Leonid
24.01.2018
19:38:21

Kirill
24.01.2018
19:40:58
Хм... интересненько, авторы плагина про это не пишут. А причём тут nix-shell?
У меня нет в проекте default.nix или чего-то такого.

Антон
24.01.2018
19:43:29
Бля, и тут это
Извините

A64m
24.01.2018
20:23:10


Index
24.01.2018
20:32:03
Хм, вот если у меня есть некий thunk a, как мне его изменить, то есть сделать мутабельное присваивание? Юз-кейс: допустим, у меня есть два семантически эквивалентных представления, и ни одна операция их не различает, но высчитать второе из них затрано; если я его вычислил, то я хочу, чтобы операции уже работали с ним, то есть перезаписать thunk в памяти.
Я могу, наверное, 1-элементный вектор таскать, а потом его анфризить, модифицировать, и фризить назад.
Можно проще?
(Без векторной обёртки)

Alexander
24.01.2018
20:36:58
memoization?

Index
24.01.2018
20:44:00
Не уверен как именно? Вот имею две функции:
f :: A -> B
g :: A -> B
и вызываю их
f a <> g a
В ходе вычисления f a может получиться, мы высчитаем более эффективное представление для a, и вызывать g уже хочется на нём.
Конечно, я без проблем мог бы сделать так:
let (a', b) = f a
in b <> g a'
но я хочу, чтобы оптимизация была прозрачной для юзеров этой API

Alexander
24.01.2018
20:45:22
а может не получиться?
вообще это не выглядит как хорошее и как то, что попадает под определение ограниченной мутабельности в ленивых языках

Google

Index
24.01.2018
20:46:02
Ну в случае если не получится, то ситуация эквивалентная (можем модифицировать через id)

Alexander
24.01.2018
20:47:25
могут ли 2 разные функции оптимизировать по разному
что они будут пытаться делать
если у нас есть функция считающая структуру, то у нас исчезает referencial transparency
может ли f (f a) обновить a сильнее?

Index
24.01.2018
20:48:03
я понимаю, я хочу unsafe-функцию
может
мне тупо хочется императивное присваивание

Alexander
24.01.2018
20:48:25
ST :)

Index
24.01.2018
20:48:35
но это не прозрачно для юзеров API, если я верну STRef

Alexander
24.01.2018
20:48:39
я не вижу разумного способа, который ещё и GC не увидит

Alexander
24.01.2018
20:49:00
ты можешь вернуть MyVar a
и у них будет f myVar <> g myVar

Index
24.01.2018
20:49:53
Смысл в том, что это присваивание оказывает ноль влияния на семантику, поэтому я хочу чтобы оно было прозрачно для юзера. Еще потенциальный вариант, что может быть я как-то смогу убедить компилятор через rewrite rules превратить f a <> g a в let (a', b) = f' a in b <> g a', но мне сложно придумать, чтобы это работало на любом коде
Может это плагином в компилятор делается как-то?

Alexander
24.01.2018
20:50:47
мне не очевидно, что 0 влияния, если это общий домен
вот с rules наверное такое провернуть можно

Антон
24.01.2018
21:10:11
Можно, но зачем? Держаться это будет исключительно на честном слове

Anatolii
24.01.2018
21:13:42

Google

Антон
24.01.2018
21:14:35

A64m
24.01.2018
21:17:07

Anatolii
24.01.2018
21:17:43

A64m
24.01.2018
21:19:11
вот борьба с несколькими избранными частичными функциями это одно из того что я называю дилевскими странностями

Anatolii
24.01.2018
21:20:16
ну на самом деле partial функции не так страшны, вот сразу затащить все пакеты нужные и импорты - самое приятное
ну и мелочи вроде варнингов о trace - тоже порадовали

A64m
24.01.2018
21:21:32
ворнинг для трейса это нормальная идея

Admin
ERROR: S client not available

Anatolii
24.01.2018
21:22:34
насчет линз я пока не уверен
ну всмысле насчет их урезанности

A64m
24.01.2018
21:28:00
вот фтпборчество, текстовое ио, всякие странности вроде переименования id и боязни head - идеи вредные

Alexander
24.01.2018
21:36:35
Text IO FWT
хочу новую прелюдию c first level liquid haskell support, разбитую на части и с модулями
и согласен без IO
только интерфейсом

A64m
24.01.2018
21:42:52
когда уже текст нормальный сделают, а то text тормозной, убогий, неподдерживаемый, как и все осалливановские библиотеки
все же хаскельная экосистема проделала большой путь, 10 лет назад О'Салливан - это был знак качества, а теперь мрак, ужас, днище

Alexander
24.01.2018
21:45:03
чего кстати тексту нужно, правильному7

Dmitry
24.01.2018
21:48:08

Google

A64m
24.01.2018
21:48:13
надо подумать, мне даже причины многих странностей text не понятны, к примеру почему ио тормозит

Leonid
24.01.2018
21:48:27
Text utf8 допилить надо
Правда там вроде хвр занимается...

Alexander
24.01.2018
21:48:46
там разве не почаровые записи и конвертации туда-сюда?

A64m
24.01.2018
21:49:25

Alexander
24.01.2018
21:51:51
ну вроде там с кодировками что-то неприятно
а зачем IO в тексте то

A64m
24.01.2018
21:52:34
тоже загадка

Alexander
24.01.2018
21:53:26
ты посмотрю код Data.Text.Interal.IO

A64m
24.01.2018
21:53:34
видимо так было нужно чтоб на интерфейс String больше походить

Alexander
24.01.2018
21:53:38
в ghc вокруг буфферов меньше
т.е. там очень похоже но переизобретено
тройная буфферизация!
а не, таки переиспользуют из Handle
там что-то странное
но все равно зачем тексту IO я не понимаю
да конечно хелперы какие нужны, но именно как хэлперы отдающие запись другой либе
стримингам там фолдам всяким
и чтение тоже

A64m
24.01.2018
21:56:53