Alexander
страдать так страдать
Alexander
маргинальщина так маргинальщина
Cheese
А куда податься (из любопытства) хаскелисту? Раст, Идрис, Кок?
почитай книжку по С (и приходи к нам работать)
Anonymous
Кстати, нашёл хорошую книжку по С. Не думал, что пригодится ;)
Dmitry
керниган и ричи?
Anonymous
Слышал про них. Но это другая книга. С собой нет. Попробую найти в тырнете
Vladislav
Раст
Cheese
А почему не руст? :(
у нас есть ряд причин, по которым мы компилируем именно в С. https://ruhaskell.org/posts/talks/2016/08/18/ivory-high-performance-code-for-haskell.html
Cheese
А, вы хаскель в С компилируете, ну тогда понятно почему не руст.
не совсем. мы компилируем свой язык в С с помощью Хаскеля
Cheese
ужас
почему же?
Алексей
хотя и интересный
саша
Алексей
почему же?
потому что довольно странно компилировать свой язык (!) с помощью хаскеля в Си (!!)
Cheese
хотя и интересный
да, сложно, но интересно. приходите к нам, расскажите, что бы вы сделали лучше
Cheese
потому что довольно странно компилировать свой язык (!) с помощью хаскеля в Си (!!)
в вакууме странно? для наших задач это самое простое решение
Anonymous
керниган и ричи?
Кажется, вот эта: https://en.m.wikibooks.org/wiki/C_Programming
Алексей
в вакууме странно? для наших задач это самое простое решение
ну видимо у вас и задачи соответствуют решению, только есть один вопрос, а почему не в llvm?
A64m
а зачем?
Cheese
у нас внешний дсл
с разными логиками и системой типов
Cheese
а зачем?
зачем что? зачем именно внешний?
A64m
да
Cheese
ну видимо у вас и задачи соответствуют решению, только есть один вопрос, а почему не в llvm?
(1) С удобнее читать-отлаживать нам, (2) надо сертифицировать решения в госорганах разных стран, а они llvm и Раст читать ещё не научились
Alexander
ничего странного
Cheese
да
(1) можно реализовывать любые идеи, не стесняя себя рамками Хаскеля; (2) код на этом языке пишут наши пользователи, хотим сделать такой синтаксис, чтобы их не отталкивать
Cheese
пользователяем синтаксис хаскеля не нравится?
их надо этому учить. а С++ или Яву они уже знают
Ilya
пользователи не могут жить без фигурных скобок, это известный факт
A64m
в хаскеле-то они есть
кана
то не есть
тогда я чего-то не понял, все же свой язык или ivory?
Cheese
то есть ivory уже не используется?
как можно было такой сумасшедший вывод сделать?
A64m
но понятно что у едсл могут быть страшные места
Cheese
тогда я чего-то не понял, все же свой язык или ivory?
свой язык на входе, Си на выходе, компилятор написан на Хаскеле, генератор кода в компиляторе использует Ivory
кана
ага, вот оно что, то есть свой язык компилируется в ivory, а тот уже дает c
кана
генератор кода в компилторе использует Ivory
кана
AST на одном языке мапится в код на ivory, нет?
Cheese
свой язык —{парсер}→ AST —{магия}→ модель задачи —{магия}→ модель решения —{Ivory}→ сишечка
Alexander
вместо магия надо писать NDA
Cheese
Ivory — это маппер, а не вход и не выход
Cheese
короче, у нас интересно. приходите. (а ещё зарплата хорошая, но кому это интересно)
кана
Ivory — это маппер, а не вход и не выход
это уже вопрос терминологии, как же круто до нее доебываться, да?
Cheese
это уже вопрос терминологии, как же круто до нее доебываться, да?
это вопрос философии, является ли функция аргументом аппликации. у нас Ivory — это инструмент. Ivory-код как данные не генерится
Алексей
компиляция во что-то и просто обычный код, который трансформирует одни структуры данных в другие - это всё таки довольно разные вещи
Алексей
довольно спорное утверждение, академики будут с вами не согласны
Да академики не увидят особой разницы, а вот на практике разница всё-таки довольно существенная.
Влод
компиляция во что-то и просто обычный код, который трансформирует одни структуры данных в другие - это всё таки довольно разные вещи
просто убирается фаза парсера и вывода таргетного кода, которые интереса и так особо не представляют
Алексей
просто убирается фаза парсера и вывода таргетного кода, которые интереса и так особо не представляют
Для практиков "убирается фаза" уже очень большой интерес представляет сокращением времени и сложности поддержки убранной фазы.
Влод
если честно я не понял
кана
class Lang1 m where op1 :: m op2 :: m seq :: m -> m -> m class Lang2 m where a :: Bool -> m b :: [m] -> m instance Lang2 m => Lang1 m where op1 = a True op2 = a False seq x y = b [x, y] тут идет компиляция одного языка в другой, но a, b при этом - тоже не данные
Влод
типа ты взял мои слова и законтрил их
Влод
но в целом если рассматривать сообщение само по себе то как-то не очень
Алексей
если честно я не понял
То что фаза убирается, код сокращается - это очень хорошо. Меньше кода - меньше проблем с кодом.
Влод
ммм окей
Влод
не думал что это был тред про перфоманс
Алексей
Я вообще про труд программистов говорил, а не про быстроту самой программы
Алексей
прям обсуждение достойное _blah
Андрей
кто-нибудь тут кубернетасы изучал?
Alexander
@elemir90
Anonymous
@invalid_username123 будет жить. Поприветствуем!
Y
Кто-нибудь осваивал хаскелл в связи с книгой Computational semantics with functional programming
Y
??
Cheese
даже если нет, вы всё равно получите ответ на конкретный вопрос
Y
Меня интересует прикладное использование хаскелла в формализации естественного языка для искусственного интеллекта, кто-то может дать наводку на эти проекты, возможно с открытым кодом?
Cheese
применение Хаскеля в этом контексте чем-то отличается от других языков?
Y
Да, но я не знаю как, потому что ничего не знаю о других языках
Alexander
а как у нас себя ведёт sort на почти упорядоченных данных?