Alexander
Мелочи всякие
Alexander
Про орфаны
Evgeniy
Ну например у меня тип в одном модуле 1 KEY a = KEY {getKey :: a} для него class Formatter a where в модуле2 а реализации у всех разные в других модулях
Alexander
Простой способ это сделать так чтобы или тип или класс были в том же модуле что определение инстанса
Alexander
Модуль с классом, его импортирует модуль где тип данных и там же инстанс
Alexander
Проблемы если и тип и модуль в чужих пакетах
Evgeniy
А да уменя всё разбросано было - да проверю те тип и класс в одном модуле а инстансы в уже можно в других)
John
Почему Haskell? Для каких реальных задач, по вашему мнению, он подходит лучше популярных императивных языков, которые там сейчас используются?
Alexander
Тогда варианты , или если ты веришь что все гарантировано хорошо, то откдючай warning
Alexander
Конечно лучше
Alexander
Особенно если у всех фп бекграунд
Evgeniy
Нет warning надо оставлять ктото советовал однозначно😀
Alexander
Это полезный warning
Alexander
Но если у тебя executable класс в пакете а, а тип в пакете б, то это самый дешевый способ
Alexander
Но нужно понимать возможные последствия
Evgeniy
Да понимаем примерно
Alexander
Отключением ты говоришь компилятору что мамой клянешься что конфликтующего интсанса нет ни у тебя ни в одном из reverse deps и deps
Alexander
reify это пакет такой с ним можно дать локальный инстанс
Denis
А, вы и есть qnikst. А тоя смотрю и больно речи похожи.
Alexander
Я вечером могу до дома дойти написать
Alexander
Чорт спалили
Alexander
Только можно не на вы
Alexander
https://hackage.haskell.org/package/reflection
Evgeniy
Я знал что он qnikst -всех можно найти и коyфы и видео и статей куча
Alexander
Статьи у меня только по физике были, или речь про блог посты?
Alexander
До CS не дорос:(
Evgeniy
Да конечно - я думаю многие начинали с них и я всё жду когда Денис Шевченко книгу допишет
Evgeniy
Можно
Вот авторы http://ruhaskell.org/authors.html
Evgeniy
Я читал раний вариант но сейчас переработанный вариант гдето кончается пока внезапно - но интересно😀
Evgeniy
Я пока "отдыхаю"😎
Алдар
ok, haskell хорош для веб разработки?
Алдар
проще на питоне или руби быстро наклепать
Алдар
имхо)
adam
Если тебе нужно количество, а не качество. Мне было очень тяжело в нее втянуться 😱
adam
Даже несмотря на саму простоту того же руби, эстетика цацкелля до сих заставляет меня не прекращать читать документацию
adam
Но кому я говорю
Quet
Так что там с проектами которые без рекордов не запилить?
убежать надо было ) так вот -- нет таких проектов которые нельзя запилить без рекордов как и нет проектов которые нельзя запилить без строк, без монад, без GC. но это ж не значит что это все бесполезные вещи? так и с рекордами -- это полезная вещь. все "поздние" языки a-la haskell (purescript, elm..) почему-то имеют нормальные рекорды и только в хаскеле пропозал который делает рекорды хоть как-то юзабельными обсуждали 5 лет и еле-еле завезли в 8.0 (и то не до конца) про либы и паттерны я даже не начинал, одна только обработка ошибок чего стоит. автор каждой либы делает это своим способом и плевать хотел на всех остальных
Evgeniy
Вот почему я думаю нужны стандарты - например хотя бы в группе и прям по пунктам
Alexander
С ошибками все более-менее понятно
Alexander
Вот логеры нормальные и 100500 протоколов на которые в явамире например есть либы
Alexander
То, что с исключениями умеют работать единицы
Evgeniy
Проверил орфаны - работает если всё просто а вот у меня чтото нет module A — типы определенные внутри апп data Key = Key { getKey :: String} deriving (Read, Show, Generic) - читается в конфиг через либу те String представление ключа из парсера комм строки class KeyDecoder a where — генерик декодера fromKey :: Key -> a module B — использование провайдера из либы instance KeyDecoder APIKey where fromKey x = if T.isPrefixOf "trnsl." ( T.pack key) then read key::APIKey else "" where key = getKey x module C — либа определённого провайдера type APIKey = String в модуле B пробую from key - Ambiguous occurrence ‘fromKey’ defined at module B or A.fromKey imported from module A
Alexander
Он говорит что в B ты определил метод fromKey
Alexander
Не метод класса а просто метод
Alexander
Там проблем с отступами нет?
Alexander
Т.е. instance KeyDecoder ApiKey where <отступ>fromKey x =... ?
Alexander
Или просто в файле какого левого fromKey не затисалось?
Alexander
Просто это должно работать все
Alexander
Ну и синониму типов можно давать инстансы только с расширениями и не надо так делать, тут уж точно newtype надо
Evgeniy
Alexander спасибо проверю но пока немогу
Denis
Подскажите, есть ли для хаскеля библиотеки, заточенные на работу с блок-схемами (flawcharts)? Интересует как внутреннее представление, так и отрисовка (в html , например). Не хочется велосипеды делать...
Vladislav
> flawcharts Схемы недостатков
Denis
Опечатка закралась
Denis
А с визуализацией, оказывается, все довольно грустно. Причем на любом языке, кроме разве что питона и JS, причем на обоих языках все ограничено вебом.
Denis
Есть несколько студенческих поделок на qml, есть монстры из мира TeX. Все они выглядят убого и криво.
Kosatka
кто-нибудь здесь упарывается по idris?
Denis
Вот эту концепцию мне хотелось бы реализовать по-человечески
Denis
Вот только не пойму, на какой платформе визуализацию пилить. Js я забросил много лет назад и не хочу в него погружаться снова. А с альтернативами как-то плохо.
Denis
Нашел, правда, Processing 3, к своему удвлению. Оно на java, умеет генерировать standalone apps для разных платформ и имеет порт для питона (почему-то не завелся у меня).
Denis
Это лучшее, что пока удалось найти
Denis
С внутренним представление данных все понятно, в принципе. Графы и списки. Над обоими типами придется делать надстройки и весь workaround писать самостоятельно. Это не так уж страшно. Вот с рендерингом хуже.
Kosatka
сегодня все делают в вебе
Kosatka
такое вот печальное будущее (настоящее)
Denis
И что с этим вебом делать потом?
Denis
Очередное тормозящее чудовище получится
Kosatka
зато работает везде
Denis
Кстати, по пути нашел довольно любопытную нишу ПО. рисование прототипов интерфейсов 😊
Anonymous
кто-нибудь sf теребил? не осиливаю нормально сделать упражнения с чёрчем.
Evgeniy
Да елм посмотри - приятный
Denis
Он опять для вебни. Я не понимаю, как мне потом с ней работать.
Evgeniy
Как тут уже пояснили все в вэб уходит реально универсально одинаковый интерфейс-знакомый всем-браузер итп
Denis
Как тут уже пояснили все в вэб уходит реально универсально одинаковый интерфейс-знакомый всем-браузер итп
Согласен, пусть так. Как сделать приложение, которому не нужно будет поднимать локальный или удаленный сервер?
Denis
Ну, локальный ладно.