Anonymous
человеческий мозг работает по странным механизмам
Anonymous
это вообще не компьютер
Влод
а не) не правильно тебя понял я списал с препода и пытался понять как оно работает
Anonymous
это какая-то машина для нечеткого паттерн-матчинга
Anonymous
в spacemacs кстати завезли coq layer (просто proof general прикрутили)
Anonymous
я опробовал, всё ок
Anonymous
можете теперь пользоваться
Anonymous
Его же вроде дропнули
Anonymous
уже?
Anonymous
но зачем
Anonymous
(((
Anonymous
А, для coq может нет
Anonymous
Но вот для isabelle точно отказались
Anonymous
В пользу штуки на базе jedit
Anonymous
а почему?
Anonymous
хмм
Anonymous
кстати
Anonymous
а есть профит использовать intero вместо ghci не в ide, а в качестве обычного repl?
Anonymous
я вот так и не понял
Anonymous
и вообще что в хаскеле с альтернативными ghci?
Anonymous
хотя если честно, проблемы-то и нет никакой с ghci, просто интересуюсь
Anonymous
(просто в других языках появляются альтернативные repl)
Anonymous
а не) не правильно тебя понял я списал с препода и пытался понять как оно работает
у тебя в универе это было? или онлайн курс? или просто как я самостоятельно Software Foundations проходишь?
Влод
там вроде кроме подсветки ничего и не придумать
Влод
ну разве что мб haskellDo но это не консолька
Alexey
В атоме в хаскельном наборе плагинов есть repl. Его особенность в том, что можно писать многострочные выражения. И ошибки пишет не в repl, а в отдельную панель с ошибками.
Alexey
Ну да. Сложно придумать особо инновационное что-то. Разве что ноутбуки типа jupyter ihaskell haskelldo...
Dmitry
хотя если честно, проблемы-то и нет никакой с ghci, просто интересуюсь
Я слышал что stack работает на форке, но не уверен так ли это и что они туда добавили со своей стороны не знаю
Alexander
нет конечно
Alexander
обычный ghci там
Alexander
в интеро уже возможно ghc API явно используется
Dmitry
Вот, точно https://commercialhaskell.github.io/intero/ The Intero backend used by the Emacs mode is a fork of GHCi, it behaves like your old friend GHCi, but with more features.
Alexander
но ghci завязано на ghc сильно, так что если морда другая а внутренности те же. другой интерпретатор это hugs
Alexander
надо посмотреть насколько там форк
Serghei
https://repl.it/site/blog/haskell
Serghei
Это прекрасно
Dmitry
А вот какие у нас есть приемы для расширяемой интерпретации?
Dmitry
Т.е допустим мы должны нечто интерпретировать, пускай это даже линейный список некоторых конструкций. Как можно ухитриться сделать так, что бы элементы этого списка были не конструкторами какого-то типа, а чем-то самостоятельным, с определенными, допустим, тайпклассами. Т.е что бы можно было увеличивать количество интерпретируемых элементов. @qnikst вы что-то подобное делали для графов?
Alexander
через экзестенциальные типы и словари
Dmitry
т.е сериализовывать это всё будет довольно уныло, я так понимаю.
Alexander
между чем и чем передаваться будет?
Alexander
если есть single executable или грузится общий модуль то можно через static pointers
Dmitry
допустим, single executable
Dmitry
но храниться выражения должны в... хранилище.
Dmitry
каком-то.
Alexander
но храниться выражения должны в... хранилище.
если single executable по Статик поинтер это пара циферок
Alexander
Сорян, реклама разозлила
Alexander
ок
Dmitry
неа, пока не могу. но примерно это интерпретатор лиспа (секспов), каждая новая конструкция должна добавляться отдельно
Dmitry
fare-name wtf111 base-price usd 35 margin-rate 1.25
Влод
непонятно зачем в интерпретаторе динамические сущности. речь ведь про хранение ast?
Dmitry
шоб добавлять в разных модулях например
Dmitry
ну и просто в одном типе я и так умею
Влод
ну и просто в одном типе я и так умею
Ну это понятно. про экзистенциальные типы уже сказали и там вроде бы всё ок с ними
Dmitry
хочу расширяемый интерпретатор, раньше так не делал
Dmitry
хотя делал, но в эрланге.
Влод
шоб добавлять в разных модулях например
речь про красоту кода (ну то есть один конструктор логически относится к одному модулю и только к нему) или требуется прямо таки новая семантика
Dmitry
но там просто свои парсер-комбинаторы были
Влод
ок понятно более менее
Dmitry
хотя тут тоже этим кончится.
Влод
А кроме обозначенной проблемы, всё остальное ок? например не получится ли так что придётся перекомпилировать хаскельный интерпретатор для добавления команд
Влод
или ты собираешься делать интерпретатор как что-то вроде ghci, но со своим синтаксисом? (интересно насколько сложно сделать ghci, навряд ли в хаскеле есть просто команда eval)
Dmitry
ну,
Dmitry
а зачем мне eval?
Влод
ну добавить инстанс тайпкласса там, добавить ассоциируюмую с ним команду в список команд текущего интерпретатора
Dmitry
на самом деле мне скорее интересно, кто как такое делал или может видел
Dmitry
что бы самому не придумывать
Влод
Ну
Влод
а хотя не. нечего написать
Alexander
еще у Олега было
Alexander
про sql
Alexander
щас найду
Alexander
а не прям щас не найду
Anatolii
Finally, Safely-Extensible and Efficient Language-Integrated Query
Anatolii
это оно?