Unat
на хабре, кажется, просто обзор
A64m
также можно посмотреть гонзалесовские блокпосты про "паттерны" типа такого http://www.haskellforall.com/2012/09/the-functor-design-pattern.html
A64m
класси линзы и призмы из вилсоновского доклада это тоже паттерн
A64m
вот к примеру описание final tagless https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object-algebras-to-finally-tagless-interpreters-2/
A64m
а значительная часть ооп-ных паттернов, это да, накостыливание ФВП, так что их в ФЯ нету, но и своих там полно
A64m
вот тоже, можно сказать из серии ФП-паттернов http://repository.upenn.edu/cgi/viewcontent.cgi?article=1773&context=cis_papers
Зигохистоморфный
http://blog.ezyang.com/2010/05/design-patterns-in-haskel/
Евгений
функция высшего порядка
Монадка паттерн, стек монадок тож паттерн, проброс ошибок через State -- паттерн. Другое дело, что я вообще не понимаю что такое ФП? Это как процедурное программирование, но с ФВП? Как в скиме?
A64m
а что такое процедурное программирование - это понятно что ли?
Alexander
хоп хоп процедурки
Alexander
лабмдастайл
Alexander
ой это не то
Евгений
Ну да, это подход, в котором программа представляет собой набор процедур, каждая из которых -- набор иструкций
A64m
т.е как во всех остальных подходах?
Евгений
Ну типа в чистом ООП программа это набор объявлений особой разновидности типов
Евгений
В жавке нет ни одной процедуры вообще
Alexander
let x=1:x; print (head x) ; :sprint x
Alexander
и ghci вешается
A64m
так метод это та же процедура, только со специальным первым аргументом, так что и там одни процедуры
Andrei
т.е как во всех остальных подходах?
как в официальном интерфейсе к CPU
Кабачок
ФП это когда у тебя все суть объявление и применение функций, а императивное когда состояние месишь.
Ignat
щас бы в одну кучу
Кабачок
По крайней мере так в вузе рассказали :D
Ignat
декларативность/императивность
Ignat
объекты и функции
Aleksei (astynax)
Объекты и декларативность/императивность - перпендикулярны
A64m
ну я бы так не сказал. Объект - это мутабельный стейт + идентити, императивность значит.
Aleksei (astynax)
Мутабельный необязателен для объектиков
A64m
ну не структурная эквивалентность, а проверка на равенство указателей
Кабачок
А причем тут проверка на равенство указателей и указатели вообще?
A64m
ну хорошо, не структурная эквивалентность, а каждый объект равен только себе самому вне зависимости от равенства его составляющих
Serghei
Просто оставлю это здесь https://autotools.io
Serghei
неделю не писал и не читал ничего по русски. смотрю сейчас на свое предыдущее сообще и как-то оно странно выглядит 🤔
Кабачок
Сейчас так все пишут.
Alexander
та книжка хорошая
Petrovich
что обычно делают в таких ситуациях?
доня.
что за дистр?
Petrovich
арч
доня.
yaourt -S ncurses-full-git
доня.
вот буквально только что решил аналогичную проблему этим)
доня.
оно заменит ncurses и libtinfo из оф. репозитория и всё норм должно быть
Petrovich
щас погляжу, спасибо
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
что обычно делают в таких ситуациях?
мне помогло это: sed -i 's/-fno-PIE/-no-pie/g' ~/.stack/programs/x86_64-linux/ghc-nopie-8.0.1/lib/ghc-8.0.1/settings
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
с точностью до твоих папок
Petrovich
yaourt -S ncurses-full-git
очень неинтуитивно, но помогло похоже
Petrovich
спасибо
Cheese
что обычно делают в таких ситуациях?
мне помогло обновить stack и ghc
доня.
мне помогло обновить stack и ghc
пробовал, мне не помогло
Cheese
просто в свежей версии GCC починили PIC/PIE, а GHC об этом вовремя не узнал
Cheese
правда, это было год назад
Alexander
товарищи, а никто не в курсе нету ли готовых утилит, которые докер контейнеры могут запускать чем-то человеческим типа systemd-nspawn?
Vasiliy
там не должно быть ничего сложного, путь до rootfs до докеровского контейнера найти и передать в systemd-spawn
Vasiliy
напомню только, что systemd-nspawn для продакшона не годится
parket
там не должно быть ничего сложного, путь до rootfs до докеровского контейнера найти и передать в systemd-spawn
В теории. На практике, я так понял, докер все же более продвинутый, и поддерживает кучу фич, которые nspawn не умеет.
Vasiliy
ну, смотря что именно нужно
Vasiliy
так-то nspawn вообще ничего не умеет, это, можно сказать, продвинутый chroot
Alexander
эм
Vasiliy
но для развлечений на локалхосте его вполне хватит
Alexander
nspawn делает тоже самое на тех же технологиях что и докер
Alexander
ну кроме всякого идиотизма, типа проброса портов через go приложение, которое несколько релизов назад сделали через ипстолы
parket
Докер это тоже продвинутый чрут. С неймспейсами и cgroups
Vasiliy
само собой, но плюшек из коробки у него нет
Alexander
spawn - это тоже очередной интерфес к namespaces и cgroups
Alexander
и lxc
parket
😂
Vasiliy
и unshare
Alexander
и 3 баш-скрипта, у меня на локал хосте для моих нужд это тоже самое
Alexander
ну они все через unshare
Vasiliy
но говорить, что unshare - то же самое, что и lxc, я бы не стал
Alexander
работают который системный вызов
Vasiliy
я имею в виду unshare из coreutils
Danila Matveev
что обычно делают в таких ситуациях?
https://github.com/commercialhaskell/stack/issues/2712 собсно флагами решается, у меня (тоже арч) не было в одном месте указано
Vasiliy
пардон, из util-linux
Alexander
да, не важно, все поняли
Alexander
lxc, и docker более высокоуровневые инетерфейсы всеж, дающие более человеческий интерфейс и автоматизирующие часть задач
Alexander
иногда не zerocost
Petrovich
стоит ли мне волноваться о будущем?