@haskellru

Страница 773 из 1551
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
Нафига такая нужна?
Чтобы в нормальной fmap map-ом назвать

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)

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

У меня нет в проекте default.nix или чего-то такого.

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

Извините

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)

вообще это не выглядит как хорошее и как то, что попадает под определение ограниченной мутабельности в ленивых языках
Ну вообще говорят же что lazy/pure это искусство контролируемого mutable, операционная семанткиа с graph reduction на мутабельности основана, здесь мне просто нужно domain-aware mutation

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
нет, не шучу, а вы порекомендуете какую-то другую прелюдию?
не любитель обычной прелюдии но универсум это просто какой-то набор Дилевских странностей, я бы использовал вместо нее обычную прелюдию и lens

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
хочу новую прелюдию c first level liquid haskell support, разбитую на части и с модулями
В планах есть завести LiquidHaskell в universum: https://github.com/serokell/universum/issues/113 Хочется в итоге в cardano-sl, но сначала нужно же, наверное, в основные используемые библиотеки (в которые мы можем). Дефолтная прелюда выглядит как хороший кандидат для экспериментального поля.

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
там разве не почаровые записи и конвертации туда-сюда?

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 я не понимаю

да конечно хелперы какие нужны, но именно как хэлперы отдающие запись другой либе

стримингам там фолдам всяким

и чтение тоже

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