Misha
сделал ему -XOverlappingInstances и оно даже нормально работает теперь
Misha
спасибо! @qnikst
Pavel
А elm сильно на haskell похож? насколько зрелый проект?
Pavel
http://elm-lang.org/
Pavel
просто интересует какой бы я зык на фронте юзать, чтобы на haskell похож был.
Dmitry
ghcjs
Dmitry
purescript
Dmitry
если "что бы похож"
Dmitry
elm менее похож, чем перечисленное.
Anonymous
А elm сильно на haskell похож? насколько зрелый проект?
Elm ужасно не похож. Но если хочешь разобраться с синтаксисом, то это самое лучшее. Ключевые отличия (как по мне) 1. Strict evaluation 2. Система типов. У elm-а все намного проще и примитивнее. После Хаскеля будет не хватать многих фич типа тайпклассов, экзистенциальных типов и тп. 3. Ну и если говорить про синтаксис, то самое знаменитое (привет всем!) это сигнатуры типов (:: vs :). Так же elm взял некоторые плюшки из f# вроде (|>) и (<|). 4. Elm позиционирует себя как язык, который не выбрасывает исключения в рантайме. В эту сторону идёт ещё работа. В частности, неправильно сформированные регулярки на данный момент могут кинуть страшный джсный эксепшн. Это плохо. Касательно х-ля. Ну есть у нас partial functions. В целом, если хочешь просто что-либо выучить, то elm не будет потерей времени и поможет тебе в последующем изучении х-ля, как по мне. Ну и да, он продакшн ready.
Pavel
ghcjs
Да вот привык уже на клиенте clojurescript а на сервере clojure юзать. Тут тоже так хочу. В общем нравится то что всетаки попытки есть и их много. Пока что больше приглянулся ghcjs
Pavel
Под клиент кода даже больше писать приходится чем для сервера. Поэтому этот вопрос лично для меня архи важен
Pavel
Elm ужасно не похож. Но если хочешь разобраться с синтаксисом, то это самое лучшее. Ключевые отличия (как по мне) 1. Strict evaluation 2. Система типов. У elm-а все намного проще и примитивнее. После Хаскеля будет не хватать многих фич типа тайпклассов, экзистенциальных типов и тп. 3. Ну и если говорить про синтаксис, то самое знаменитое (привет всем!) это сигнатуры типов (:: vs :). Так же elm взял некоторые плюшки из f# вроде (|>) и (<|). 4. Elm позиционирует себя как язык, который не выбрасывает исключения в рантайме. В эту сторону идёт ещё работа. В частности, неправильно сформированные регулярки на данный момент могут кинуть страшный джсный эксепшн. Это плохо. Касательно х-ля. Ну есть у нас partial functions. В целом, если хочешь просто что-либо выучить, то elm не будет потерей времени и поможет тебе в последующем изучении х-ля, как по мне. Ну и да, он продакшн ready.
благодарю за хороший обзор. Всетаки тут вопрос стоит не просто выучить а применять еще активно. С таким прицелом.
Warren
"Elm is basically PureScript with the adult content removed"
Anonymous
ELM = entry level mathematics :)
Мерль
https://ruhaskell.org/posts/events/2017/04/06/meetup-2017-spring-videos.html
Alexander
ненавижу гейзенбаги
Misha
ненавижу гейзенбаги
в х-ле же их типа не должно быть
Alexander
но они везде есть
Misha
ну блин
Stas
привет! нет ли инструмента, который чекает цепочку редукций простых лямбда термов?
Stas
редуцирую на листке, но постоянно ошибаюсь где-то
Dmitry
на два поста выше - расцениваем как спам?
Dmitry
пожалуй, да.
Konstantin
@voidlizard это было в несколько групп распихано сразу
Vladimir
про лямбда-термы? Это какой-то некст-левел спам)
Dmitry
чем хорош телеграмм — спамеры тут пропадают бесследно
Stas
я ведь не про ооп спросил
Stas
строгие хаскелисты
Dmitry
ленивые
Yurii
А пример можно?)
Yurii
привет! нет ли инструмента, который чекает цепочку редукций простых лямбда термов?
Yurii
редуцирую на листке, но постоянно ошибаюсь где-то
Stas
решил. let T = (\fx. f(f x)); in T T T f x
Stas
это из Введение в функциональное программирование. John Harrison глава 2, задача 2
Stas
не очень понимаю откуда берется число аппликаций. T f x - f(fx) 2f T T f x - f(f(f(fx))) 4f T T T f x - f(f...fx)) 16 f при 4 T больше 1000 f
Oleg
не очень понимаю откуда берется число аппликаций. T f x - f(fx) 2f T T f x - f(f(f(fx))) 4f T T T f x - f(f...fx)) 16 f при 4 T больше 1000 f
T f берёт функцию a -> a и возвращает a -> a с дважды примнённой функцией T T берёт функцию T и дважды применяет её, т.е. тип левой T в данном случае (a -> a) -> a -> a в T T T тип левой T ( (a -> a) -> a -> a) -> (a -> a) -> a -> a
Oleg
в результате количество аппликаций растёт как 2 ^ (2 ^ 2 ^ ... (2 ^ 1))..)
Stas
спс
Misha
число Грэма аппликаций :)
Pavel
Товарищи хаскелисты, вопрос немного не в тему, может кто знает есть ли канал емаксеров на телеграм?
Pavel
https://t.me/emacs_ru
Pavel
если кому интересно и ктото юзает emacs
Boris
Читали уже? Как вам? https://habrahabr.ru/post/327913/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts
Boris
У меня вот вопрос - как использовать подобные вещи в реальном мире
Boris
положим, мне нужна программа, которая принимает из stdin, например, количество ферзей и размеры доски и должна печатать их координаты
Boris
как должны выглядеть функции, которые их вычисляют, какая у них сигнатура
Boris
main = do (number, size) <- readSomeWay let result = evalSomeWay number size printSomeWay result
Boris
какие типы и как примерно выглядят функции из такого REPL'а?
Dmitry
чувак пишет задачу про ферзей на типах, разбавляя опус литературщиной?
Boris
ну как бы, но там все вычисления идут на уровне типов в ADT
Boris
там ссылка на подобную вещь на кложуре
Boris
только слишком много джавы, я только CL знаю
Dmitry
а на кложе можно что-то сделать на типах?
Dmitry
там есть типы в компайл-тайме? в хаскелевском понимани? мне казалось, что это язык с динамической типизацией
Boris
сомневаюсь) да и смысла нет, Лисп это не про типы
Boris
я так понял, там что-то типа CLOS юзается - собирает классы на лету, где-то с середины уходит в дебри jvm
Alexander
/me сказав многозначительное да, ушел спать дальше:/
Alexander
/me
Alexander
это не irc, не работает тут
꧁Александр
/you
Dmitry
и это тоже.
Max
Безобразие.
Anonymous
кто-нибудь проходил вторую часть курс Москвина на степике? у кого какие мнения?
Alexander
да
Oleg
Да, последняя задача норм
Pavel
а это ктонибудь решал? https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems
Anonymous
я что-то подобное решал на ocaml
Anonymous
https://ocaml.org/learn/tutorials/99problems.html
Misha
а вот кстати, какой прок от решения этих вещей? ну кроме развлечения, конечно. Я решал задачки с project Euler, это как бы занятно само по себе, но после освоения базовых вещей продвинуться в изучении языка не помогает никак
Alexander
мне помогло найти haskell работу
Alexander
не смотря на то, что я большую часть эйлера на питоне и maple сделал
Misha
опа
Misha
последнее, что я предположил бы
Alexander
ну на самом деле с языком познакомился
Alexander
и потом когда понадобилось доучил, в общем случай
Alexander
не показательно
Misha
найти работу через projecteuler - это самое экзотичное наверное