Max
Начинается...
Aleksei (astynax)
> я помню как-то думал что лиспы иммутабельны лиспы ни иммутабельны ни функциональны
Dmitry
@mkrentovskiy ну ты же в теме эрланга до сих пор? расскажи, как там с оптимизацией
Dmitry
jit сделали?
Aleksei (astynax)
Кложа - не Лисп
Aleksei (astynax)
И редефайн def-ов там никто не отменял. Сами структуры, да, иммутабельные
Aleksei (astynax)
Но мутабельные ссылки на них
Зигохистоморфный
а про фронтенд @astynax пробовали miso?
Aleksei (astynax)
Нет пока. В закладках, всё хочу добраться. Но ghcjs делает меня грустным из за скорости компиляции -настолько, что и смотреть на него не хочется особо :)
Max
jit сделали?
Сделали и допиливают - http://erlang.org/doc/man/HiPE_app.html
Dmitry
HiPE я помню, с ним что-то не ок было.
Dmitry
там кто-то хотел llvm прикрутить в качестве JIT
Dmitry
что в принципе имеет смысл, чем кончилось, уже не знаю
Aleksei (astynax)
Read-Waaaait-Eval-Waaaaaaaaaait-Print-Wait-Loop?
Aleksei (astynax)
Удавалось, но лучше и не пробовал бы
Dmitry
что-то это печальная история с GHCJS
Dmitry
мы было тоже в него начали
Taras 🦀
не не не, спасибо эликсира накушался, нафиг он мне сдался
Taras 🦀
интересует в чем хаскель покруче эрланга, поприятней и так далее
Dmitry
сильной статической типизацией и вообще системой типов, синтаксисом, компиляцией в нативный код и инфраструктурой на выбор - stack или nix (который, правда, не только про хаскел)
Dmitry
нормальными модулями, хотя и не настолько нормальными, как хотелось бы (backpack!)
Dmitry
тем, что библиотек хоть и мало, но всё равно в разы больше
Dmitry
что я пропустил?
Влод
там же вроде какие то прям конкретные проблемы есть в нём. ну строки из чисел, вечно какието прагмы компилятору прописываются в файле.
Влод
https://www.stackage.org/haddock/lts-9.3/eventstore-0.15.0.2/Database-EventStore-Internal-Test.html#v:mempty почему в сотнях библиотек есть свой моноид?
Aleksei (astynax)
Это реэкспорт, не?
Влод
а ок
Влод
тогда проблема с hoogle в stackage
кана
Ну эрланг такой же функциональный, как js, имхо
Влод
не, иммутабельность – большой плюс
кана
Эрланг мультипарадигменный же, причем в основном императивен (и может даже ближе к ООП, чем джава какая), но с иммутабельнюстью, паттерн-метчингом и еще большим количеством функциональных фишек
Aleksei (astynax)
тогда проблема с hoogle в stackage
haddock реэкспорты так показывает, мол "класс указал, вот я и рендерю доки по классу"
Aleksei (astynax)
Где это эрланг императивный? В посылке сообщений? :)
Dmitry
в ; .
Dmitry
пардон, там , .
Aleksei (astynax)
Эт да :)
Aleksei (astynax)
Но из эффектов там либо IO, либо посылка сообщений. Мутабельных переменных хоть нет
Влод
короче хотел посмотреть кто использует функтор или моноид, но хугл выдаёт треш Functor f => f a и далее нерелевантные результаты
Aleksei (astynax)
кто использует? Все используют!
Влод
если расширить мой вопрос: зачем нужен fmap если можно было как во всяких окамлах писать List.map, Optional.map fmap можно использовать для любого функтора, но кто, зачем использует? можно придумать пример для монады где есть полезная функция sequence (такого в мл уже не сделаешь), хотелось бы посмотреть ещё примеры таких функций для тайпклассов попроще
Aleksei (astynax)
fmap не про контейнеры, он про функтор :)
Aleksei (astynax)
fmap (+ 1) (* 2) где тут контейнер?
Влод
ооох
Vasiliy
ну вот же, (* 2)
Влод
теперь ок?
Aleksei (astynax)
И где контейнер? Что в контейнере?
Aleksei (astynax)
Я к тому, что контейнер - плохая аналогия
Aleksei (astynax)
И "контекст" - тоже плохая аналогия
Влод
я ОДИН раз написал контейнер
Влод
извини
Влод
оговорился
Влод
всё
Alex
strengthL :: Functor f => a -> f b -> f (a, b) strengthL = fmap . (,)
Aleksei (astynax)
Да ладно, я троллю слегка :)
Влод
считай что затролил
Alexander
это не аналогия 😏
Alexander
/me задумался а есть ли такой термин
Aleksei (astynax)
"Аналогия" в смысле "так в некоторых монадных туториалах объясняют"
Aleksei (astynax)
Псто все правы, но только в частности. Где-то реализующий функтор тип, это таки контейнер, а где-то - контекст, а где-то - эффект
Влод
strengthL :: Functor f => a -> f b -> f (a, b) strengthL = fmap . (,)
ну слабенько. лучше уж найти нормально список всего такого и оценить есть ли в этом польза
Alex
как же слабенько, когда сильненько (слева)?!
Aleksei (astynax)
Польза от fmap то? Кругом она
Alexander
@astynax я не знаю какой смысл ты вносишь в слово контекст
Влод
я бы назвал weaknessL
Alexander
но для меня туда включются и эффекты и контейнеры
Alexander
так что очевидно, какой-то другой
Alexander
не знаю какой
Alexander
ок
Aleksei (astynax)
Если включить и эффекты и контейнеры, то будет правильный "контекст"
Alex
да просто категория
Alex
функтор он же промеж категорий
Alexander
> The basic idea behind the semantics of programs de- scribed below is that a program denotes a morphism from A (the object of values of type A) to TB (the object of computations of type B).
Alexander
но это люди разбегуться 😏
Alexander
а там и о функторах для связи computations с чистыми функциями потребуются