 Alexander
    Alexander 
    
    
        
        
        
        Мелочи всякие
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Про орфаны
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Ну например у меня тип в одном модуле 1 KEY a = KEY {getKey :: a} для него class Formatter a where  в модуле2  а реализации у всех разные в других модулях
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Простой способ это сделать так чтобы или тип или класс были в том же модуле что определение инстанса
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Модуль с классом, его импортирует модуль где тип данных и там же инстанс
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Проблемы если и тип и модуль в чужих пакетах
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        А да уменя всё разбросано было - да проверю те тип и класс в одном модуле а инстансы в уже можно в других)
    
 
     John
    John 
    
    
        
        
        
        Почему Haskell? Для каких реальных задач, по вашему мнению, он подходит лучше популярных императивных языков, которые там сейчас используются?
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Тогда варианты , или если ты веришь что все гарантировано хорошо, то откдючай warning
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Конечно лучше
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Особенно если у всех фп бекграунд
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Нет warning надо оставлять ктото советовал однозначно😀
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Это полезный warning
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Но если у тебя executable класс в пакете а, а тип в пакете б, то это самый дешевый способ
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Но нужно понимать возможные последствия
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Да понимаем примерно
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Отключением ты говоришь компилятору что мамой клянешься что конфликтующего интсанса нет ни у тебя ни в одном из reverse deps и deps
    
 
     Alexander
    Alexander 
    
    
        
        
        
        reify это пакет такой с ним можно дать локальный инстанс
    
 
     Denis
    Denis 
    
    
        
        
        
        А, вы и есть qnikst. А тоя смотрю и больно речи похожи.
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Я вечером могу до дома дойти написать
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Чорт спалили
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Только можно не на вы
    
 
     Denis
    Denis 
    
    
 
     Alexander
    Alexander 
    
    
        
        
        
        https://hackage.haskell.org/package/reflection
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Я знал что он qnikst -всех можно найти и коyфы и видео и статей куча
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Статьи у меня только по физике были, или речь про блог посты?
    
 
     Alexander
    Alexander 
    
    
        
        
        
        До CS не дорос:(
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Да конечно - я думаю многие начинали с них и я всё жду когда Денис Шевченко книгу допишет
    
 
     Evgeniy
    Evgeniy 
    
    
        
                    
                        
                            
                            Можно
                        
                    
                
        
        
        Вот авторы http://ruhaskell.org/authors.html
    
 
 
     Denis
    Denis 
    
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Я  читал раний вариант но сейчас переработанный вариант гдето кончается пока внезапно - но интересно😀
    
 
     Denis
    Denis 
    
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Я пока "отдыхаю"😎
    
 
     Алдар
    Алдар 
    
    
        
        
        
        ok, haskell хорош для веб разработки?
    
 
     adam
    adam 
    
    
 
     Алдар
    Алдар 
    
    
        
        
        
        проще на питоне или руби быстро наклепать
    
 
     Алдар
    Алдар 
    
    
        
        
        
        имхо)
    
 
     adam
    adam 
    
    
        
        
        
        Если тебе нужно количество, а не качество. Мне было очень тяжело в нее втянуться 😱
    
 
     adam
    adam 
    
    
        
        
        
        Даже несмотря на саму простоту того же руби, эстетика цацкелля до сих заставляет меня не прекращать читать документацию
    
 
     adam
    adam 
    
    
        
        
        
        Но кому я говорю
    
 
     Quet
    Quet 
    
    
        
                    
                        
                            
                            Так что там с проектами которые без рекордов не запилить?
                        
                    
                
        
        
        убежать надо было )
        
        так вот -- нет таких проектов которые нельзя запилить без рекордов
        как и нет проектов которые нельзя запилить без строк, без монад, без GC. но это ж не значит что это все бесполезные вещи?
        так и с рекордами -- это полезная вещь. все "поздние" языки a-la haskell (purescript, elm..) почему-то имеют нормальные рекорды и только в хаскеле пропозал который делает рекорды хоть как-то юзабельными обсуждали 5 лет и еле-еле завезли в 8.0 (и то не до конца)
        про либы и паттерны я даже не начинал, одна только обработка ошибок чего стоит. автор каждой либы делает это своим способом и плевать хотел на всех остальных
    
 
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Вот почему я думаю нужны стандарты - например хотя бы в группе и прям по пунктам
    
 
     Alexander
    Alexander 
    
    
        
        
        
        С ошибками все более-менее понятно
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Вот логеры нормальные и 100500 протоколов на которые в явамире например есть либы
    
 
     Alexander
    Alexander 
    
    
        
        
        
        То, что с исключениями умеют работать единицы
    
 
     Evgeniy
    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
    Alexander 
    
    
        
        
        
        Он говорит что в B ты определил метод fromKey
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Не метод класса а просто метод
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Там проблем с отступами нет?
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Т.е.
        instance KeyDecoder ApiKey where
        <отступ>fromKey x =...
        ?
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Или просто в файле какого левого fromKey не затисалось?
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Просто это должно работать все
    
 
     Alexander
    Alexander 
    
    
        
        
        
        Ну и синониму типов можно давать инстансы только с расширениями и не надо так делать, тут уж точно newtype надо
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Alexander спасибо проверю но пока немогу
    
 
     Denis
    Denis 
    
    
        
        
        
        Подскажите, есть ли для хаскеля библиотеки, заточенные на работу с блок-схемами (flawcharts)? Интересует как внутреннее представление, так и отрисовка (в html , например). Не хочется велосипеды делать...
    
 
     Vladislav
    Vladislav 
    
    
        
        
        
        > flawcharts
        
        Схемы недостатков
    
 
     Denis
    Denis 
    
    
        
        
        
        Опечатка закралась
    
 
     Denis
    Denis 
    
    
        
        
        
        А с визуализацией, оказывается, все довольно грустно. Причем на любом языке, кроме разве что питона и JS, причем на обоих языках все ограничено вебом.
    
 
     Denis
    Denis 
    
    
        
        
        
        Есть несколько студенческих поделок на qml, есть монстры из мира TeX. Все они выглядят убого и криво.
    
 
     Evgeniy
    Evgeniy 
    
    
 
     Denis
    Denis 
    
    
 
     Kosatka
    Kosatka 
    
    
        
        
        
        кто-нибудь здесь упарывается по idris?
    
 
     Denis
    Denis 
    
    
        
        
        
        Вот эту концепцию мне хотелось бы реализовать по-человечески
    
 
     Denis
    Denis 
    
    
        
        
        
        Вот только не пойму, на какой платформе визуализацию пилить. Js я забросил много лет назад и не хочу в него погружаться снова. А с альтернативами как-то плохо.
    
 
     Denis
    Denis 
    
    
        
        
        
        Нашел, правда, Processing 3, к своему удвлению. Оно на java, умеет генерировать standalone apps для разных платформ и имеет порт для питона (почему-то не завелся у меня).
    
 
     Denis
    Denis 
    
    
        
        
        
        Это лучшее, что пока удалось найти
    
 
     Denis
    Denis 
    
    
        
        
        
        С внутренним представление данных все понятно, в принципе. Графы и списки. Над обоими типами придется делать надстройки и весь workaround писать самостоятельно. Это не так уж страшно. Вот с рендерингом хуже.
    
 
     Kosatka
    Kosatka 
    
    
        
        
        
        сегодня все делают в вебе
    
 
     Kosatka
    Kosatka 
    
    
        
        
        
        такое вот печальное будущее (настоящее)
    
 
     Denis
    Denis 
    
    
        
        
        
        И что с этим вебом делать потом?
    
 
     Denis
    Denis 
    
    
        
        
        
        Очередное тормозящее чудовище получится
    
 
     Kosatka
    Kosatka 
    
    
        
        
        
        зато работает везде
    
 
     Denis
    Denis 
    
    
        
        
        
        Кстати, по пути нашел довольно любопытную нишу ПО. рисование прототипов интерфейсов 😊
    
 
     Anonymous
    Anonymous 
    
    
        
        
        
        кто-нибудь sf теребил? не осиливаю нормально сделать упражнения с чёрчем.
    
 
     Anonymous
    Anonymous 
    
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Да елм посмотри - приятный
    
 
     Denis
    Denis 
    
    
        
        
        
        Он опять для вебни. Я не понимаю, как мне потом с ней работать.
    
 
     Evgeniy
    Evgeniy 
    
    
        
        
        
        Как тут уже пояснили все в вэб уходит реально универсально одинаковый интерфейс-знакомый всем-браузер итп
    
 
     Denis
    Denis 
    
    
        
        
        
        Ну, локальный ладно.