Alexander
надо допилил таки либу
Alexander
Там для этого сессия есть же
Alexander
Которая категория клейсли
Ilya
Нужен двумерный массив. Требований немного
1) Вывод на экран в виде выровненной прямугольной таблички
2) Инстанс Монады (в духе монады для списков) или хотя бы Аппликатив.
3) Зипы (для массивов, у которых совпадают оба измерения)
Какой пакет посоветуете?
Aleksey
Посмотри repa за 1 пункт не уверен
Alexander
vector
Alexander
и.к. двухмерный массив не нужен
Alexander
+ Ix для удобства если очень хочется
Alexander
repa, masif, yarr есть но возможно удовольствие будет ниже среднего
A64m
не уверен что что-то из этого делает вывод на экран в виде выровненной таблички
Timofey
Aleksei (astynax)
Aleksei (astynax)
У меня есть проект-пустышка, в котором в stack.yaml добавлены все тулзы, которые я использую, а Makefile делает
stack build --copy-compiler-tool hlint hoogle weeder stylish-haskell hindent hasktags ghcid
.
Плюс к этому алиас для bash:
gostack() {
env PATH=$(stack path --compiler-tools-bin):$PATH debian_chroot=stacked bash
}
Открываю терминал, захожу в папку проекта, делаю gostack. После этого у меня доступны нужных версий инструменты, и можно просто запускать редактор (у меня это Emacs) в полученном окружении без всяких stack exec.
При таком подходе глобальный PATH не замусоривается haskell-related tools, и не бывает конфликтов соответственно. И для нескольких проектов, использующих одну версию компилятора, собранные и установленные один раз утилиты, переиспользуются.
Aleksei (astynax)
Вопрос, кстати, ^ это стоит описать в каком-то виде, чтобы ссылку давать? Или такой подход - для извращенцев вроде меня и больше никому не пригодится?
Dmitry
Клёво. Мне было бы полезно, как раз собирался на выходных над средой разработки поработать
Dmitry
Какой редактор?
Alexander
у меня есть структурка ее надо сериализовать в json и байтостроку, делают это много тредов, каждый добавляя структуре небольшое поле сначала. Можно ли как-то дёшево расшариьь работу?
Aleksei (astynax)
Какой редактор?
У мну Emacs, и он полагает, что все утилиты доступны в PATH. Всё остальное, что так же смотрит в PATH, будет работать так же.
Alexander
если я делают data S a = S a Encoding, то расширить можно, но работа не пошарится
Aleksei (astynax)
Alexander
если сделать S a = S a LBS, по сериализация расшарится, но не расшарится работа
Alexander
если не енкодить, то енкодить будут все треды много раз
Alexander
этого хочется избежать
Aleksei (astynax)
Можно сделать "список словариков", которые потом помержить
Alexander
и.е. работа шарится только если LBS делать
Alexander
но тогда непонятно как мержить
Aleksei (astynax)
ага
Alexander
и.е. было S A, а сделать S (B,A)
Alexander
можно руками написав json но это как-то некруто
Alexander
хм.. может свой encoding можно
Alexander
там же расширяемо
Alexander
и LBS завернуть
Alexander
сработает?
Anton
Всем доброго утра/дня! А подскажете как называется вот такая функция в теории категорий?
fork :: (x -> a) -> (x -> b) -> x -> (a, b)
fork f g = \x -> (f x, g x)
(или с этим лучше в теоркатный чатик?)
Timofey
Timofey
Aleksei (astynax)
Aleksei (astynax)
Складывание в ~/.stack/compiler-tools/x86_64-linux/ghc-8.2.2/bin/ позволяет переиспользовать во всех снапшотах, которые базируются на этой версии компилятора. Это удобно, когда есть проекты с "соседними" снапшотами
Dmitry
А hdevtools почему не используется?
Dmitry
@asyntax ^
Dmitry
В твоей схеме
Dmitry
Я прям вообще без hdevtools жить не могу, когда он отваливается (по разным причинам) уровень Haskell-боли на порядок вырастает
Maxim
а какой от него профит? я его таки смог завести, но не понял зачем
Dmitry
А, вместо него ghc-mod?
Maxim
когда уже есть hie
Maxim
еще бы он не жрал память так много...
Maxim
правда у меня hie почему-то не хочется дополнять импорты, надо еще разобраться
Dmitry
Я старовер, я в vim'е
Maxim
ну так и я в виме
Maxim
LanguageClient_neovim, deoplete, hie
Maxim
в неовиме, естественно
Dmitry
hie -- как плагин к vim'у может работать?
Alexander
Anton
ок
Dmitry
Вижу, может
Maxim
Dmitry
Нуу, надо будет на выходных тоже пощщупать
Maxim
language server protocol, имхо, отличная тема
Alexander
вообще мне это какой-то энкожинг напоминает типа Scott
Maxim
MS молодцы, как ни странно
Alexander
или П-калкулус
Alexander
но чему это в ТК соответствует и какому пакету кметта я не знаю
Aleksei (astynax)
@maksbotan @dmalkr на наших рабочих проектах не работает ни hie, ни hdevtool, ни ghc-mod. ghcid и тот я не смог завести
Aleksei (astynax)
На хоббипроектах работает intero и мне норм
Dmitry
Почему не работает, ресурсов не хватает?
Aleksei (astynax)
Было бы у меня 16 ядер и 128ГБ ОЗУ, работал бы (но это не точно)
Aleksei (astynax)
ghc-mod просто не парсит наши исходники
Dmitry
Жесть
Aleksei (astynax)
Потому что haskell-src-exts - говно
Aleksei (astynax)
Кароч, ошибки у мну подсвечиваются через stack ghc, сбоку в отдельном терминале запущен stack --file-watch, hlint на подхвате. Навигация через etags. Так и работаю.
Aleksei (astynax)
ошибки проверяются только по save, иначе я бы повесился
Dmitry
Ошибки через stack ghc -- в редакторе подсветка, или в отдельной консоли?
Aleksei (astynax)
Emacs в фоне запускает stack ghc для файла при сохранении. Секунд через 5-10 обновляются ошибки в редакторе
Dmitry
А, ясно.
Dmitry
Автодополнение есть?
A64m
вроде же ghc-modу HSE нужен только для того чтоб парсить некорректный хаскель для фичи, которая реализацию-заглушку делает для сигнатуры функции
Dmitry
Или не нужно?
A64m
так что дело в другом, наверное