Анна
чо за конторь? чтоб плюсы с монадами...
Да монады у них вряд ли на проде, просто пришёл чел с похожими интересами. Я уж грешным делом подумала, не ходит ли он на митапы funcby 🤔
Фил Ранжин
ну вот у меня на собесе тоже был "чел с похожими интересами". Сразу убил вопросом, что бы я добавил в F# из хаскеля
Vasiliy
лол.
Vasiliy
А если не знаешь хаскеля? или это что то про высшие типы или как они звучили?
x
сказал я, который не написал ни одной осмысленной строчки на f#
Фил Ранжин
ты же понимаешь, что я не изучал хаскель
Фил Ранжин
как бы вопрос сразу не в кассу
Фил Ранжин
я про типы затёр
Фил Ранжин
но я хз, что там с типами в хаскеле. Знаю, что в тс есть кондишнл тайпс и маппед тайпс
Фил Ранжин
и вот про них сказал, ему зашло
Анна
Тайп классов не хватает, да
Крылатый
Доброе утро, фшарпята!
Фил Ранжин
а что за тайпклассы?
Анна
у меня тоже про тайпклассы спросили, хотя я на хаскеле не больше 10 строк написала в жизни
x
Доброе утро, фшарпята!
здесь чят по джаве, удалитесь.
Крылатый
здесь чят по джаве, удалитесь.
Тогда плюсовику тут будут рады!
Nikolay
> float > price
Почему нет? В F# можно!
Ayrat
я их сломал правда )
Есть мнение, что сломал их компилятор! ну да хер с ним, починится
Vladislav
нопы
Ayrat
надо PR заслать наверное
Ayrat
фикс там охуенный - минус 2 строчки
Фил Ранжин
эй, гении
Фил Ранжин
а что за тайпклассы?
Pavel
это ты типа перекличку объявил?
Pavel
трейты это такие
Ayrat
а что за тайпклассы?
Возможность наделять свои типы поведением. Типа трейтов
Bonart
Возможность наделять свои типы поведением. Типа трейтов
Трейты=тайпклассы. Второе мне нравится больше.
Ayrat
Трейты=тайпклассы. Второе мне нравится больше.
Ну вот я сидел и думал чем трейты от тайпклассов отличаются, ничего не придумал
Bonart
В сишарпе и эфшарпе такая функциональность поддержвается только для нескольких ad-hoc "классов типов". Например, foreaach, LINQ, CE
Bonart
Disposable
TaskLike и т.п. Свое произвольное не определить
Bonart
В хаскеле и расте классы типов полноценные
Bonart
Их можно представить, как интерфейсы, отвязанные от конкретных типов по умолчанию. Программист может связать классы типов со своими типами, причем не обязательно 1:1
Ayrat
Вот было бы круто делать так:
Ayrat
Но ашипка All implemented interfaces should be declared on the initial declaration of the type
Ayrat
вот можно было бы делать как на скрине выше - считай что тайп классы (в лице интерфейсов) появились
Vasiliy
ооооо_О
Ayrat
ооооо_О
а шо? интерфейсы и абстрактные классы (с дефолтной имплементацией) это считай почти тайп классы. Если бы их можно было докидывать типу)
Ayrat
есть у тебя несравниваемый тип, а ты херак-херак и докинул ему IEquatable<T>
Ayrat
и всё, сравниваемый резко стал
Ayrat
или IComparable я уж забыл как он там
Фил Ранжин
Вот было бы круто делать так:
было бы охуенно конечно
Ayrat
было бы охуенно конечно
у кого-то уже охуенно! у нас нет
Bonart
А есть где прочитать про это с примерами7
Гугли "хаскель" "классы типов"
Vasiliy
ok
Bonart
Самое няшное, что класс типов модет быть определен в одном месте, типы в другом, а связь между ними - в третьем
Bonart
Т.е. можно вязать между собой типы и классы типов, которые сами по себе вообще друг о друге не знают
Vladislav
Ayrat
это для сортировок
да, я уж забыл когда последний раз их имплементил. F# развращает
Bonart
Dr. Friedrich
Про clojure и reason. Они не нормально компилируются в JS.
Dr. Friedrich
Нормально компилируется только тот, кто может бесшовно использовать JS в своих программах
Dr. Friedrich
А если надо писать свою обвязку — то это ненормально
Dr. Friedrich
Ну и там дальше по степеням ненормальности можно разложить
Dr. Friedrich
В TS всё сделано максимально человечно, в частности
Vladislav
с блазором конечно я разочаровался
Dr. Friedrich
На крайняк можно обмазать внешнюю либу через any и юзать как есть.
Igor
А если надо писать свою обвязку — то это ненормально
А что значит обвязка? В кложе есть интеропт, примерно как с java. Типа F# тоже не нормально компилируется в IL?
Dr. Friedrich
Ну там надо было писать что-то вроде (js "my-js-code"), не?
Dr. Friedrich
Это совсем-совсем не как с Java.
サイトー
Нормально компилируется только тот, кто может бесшовно использовать JS в своих программах
ffi в ризоне настолько тонкий, что практически незаметный считай как тс декларации написать
サイトー
плюс пофайловая компиляция (как раньше в тс) дает очень удобный способ понимать а как оно собственно протранспилилось (и это можно читать!)
Dr. Friedrich
Постановляю, в clojurescript нормально сделан интероп.
Vladislav
а чо там?
да интероп это боль сплошная, если нужна либа - пиши обвязку
Vladislav
проще жс фреймворк взять
Dr. Friedrich
Например, я могу хотеть расширить JS-объект (!) своим классом
Dr. Friedrich
Если для этого надо приседать — то не годится