Зигохистоморфный
в жс классы
Евгений
Может ты с метаобъектами путаешь?
доня.
class Foo { constructor() { console.log("wow! classes in js"); } }
Зигохистоморфный
Ну и extends тоже есть и это уже не просто сахар над прототайп
Дима
Существует лишь крайне узкий ряд кейсов в которых можно отличить сущность созданную через прототипы от сущности созданной через классы. И те можно убрать через Proxy или другие приёмы Просто это долго и неудобно, так как к прототипному наследованию относятся все проблемы наследования обычного
Евгений
Как нету IDE-срача, так тишина. Так что сделаю вброс не менее классический, но похитрее. Вопрос промышленным хаскель-программистам: @qnikst, @voidlizard, @weonn, вы вообще видете продакшон профит от call-by-need? Или вы юзаете хаскель из-за разросшейся инфраструктуры, являющейся побочным эффектом ленивых вычислений: развитой системы типов, тайп-классов монад-трансформеров и прочего; а лень вызывает у вас только грусть, ощущение пустоты и постоянную борьбу с граф-редукцией?
Alexander
а профита от call-by-need не видно пока он под капотом, но об этом обычно не думаешь, чтобы его увидеть можно взять идрис и начать пытаться писать в привычном стиле
Alexander
т.к. чаще возникает лень - грусть, а про то что это хорошо, только в дискуссиях вроде "какого черта это работает за O(1) по памяти, хотя причин не видно"
Влод
а что возникнет в идрисе?
Влод
ну то есть где проявление привычного стиля?
Валерий
Емнип, он активный
Влод
кстати интересно стало можно ли там сделать какой-нибудь 2связный или кольцевой список так же через let где ссылки друг на друга ссылаются
Влод
энергичный, да
Валерий
Ну вот тут То есть без вызовов по надобности
Alexander
@vlastachu взаимнорекурсивные зависимости и бесконечное вычисление, O(N^2) вмето O(N) часто
Alexander
но в идрисе пофиг на нём же для интереса только писать
Alexander
interface в терминах java это набор методов (публичных до следующей версии java), которые класс реализующий интерфейс должен реализовать
Alexander
т.о. можно безопасно реализовывать аналог множества родительских объектов
Alexander
ну и вообще нету многих проблем связанных с логичностью иерархий классов
Евгений
т.к. чаще возникает лень - грусть, а про то что это хорошо, только в дискуссиях вроде "какого черта это работает за O(1) по памяти, хотя причин не видно"
Хм, а есть где-нибудь сборник стандартных факапов с граф-редукцией? Можно попробовать поискать систему типов для защиты от подобных проблем
Alexander
чем-то напоминают class в haskell
Нурлан
Тоже так показалось.
Ilya
Где про strict
Alexander
@elemir90 не видел сборника, нарывался когда аппликатив для парсера писал и т.п. (но мои познания идриса примерно на курсе Брагилевского)
Alexander
я немного сомневаюсь, что там будет исчерпывающий сборник
Alex
а что возникнет в идрисе?
вот такое помню было https://groups.google.com/forum/#!topic/idris-lang/39pYwYt0F4k
Alexander
но мало ли
Alexander
ну и в том же курсе было видно много мест, где ассимптотика ломается
Ilya
ещё я читал статью от ibm про все виды фолдов, тоже понравилось
Ilya
Но там скорее для новичков
Alex
?
Влод
ну тип контекст был про промшленный хаскель (хотя ушло уже) и тут ссылка про проблемы с recursion schemes
Зигохистоморфный
А какие в них проблемы? Иногда они быстрее обычной рекурсии + можно фьюзить алгебры
Зигохистоморфный
https://codisec.com/binary-data-visualization/
Dmitry
возвращаясь к вопросу о ленивости в продакшене - ленивость это не более чем данность языка. в отличие от вещей, которые являются однозначными изъянами в прочих языках - отсутствие какой-либо защиты, типизации или модулей в Си, тяжелая VM в некоем другом языке - ленивость не только вредна, но и полезна. непреодолеваемых проблем она не создаёт
Andrey
Если хочестя энергичности, можно взять Окамл или другой из МЛ-семейства, хотя Фшарп потащит за собой НЕТ. Но там будут свои недостатки даже по сравнению с сабжем.
Dmitry
(n-1) битная арифметика, отсутствие SMP, странноватый синтаксис и местами семантика, сомнительная живость ждут вас
Andrey
Ну началось... Я же сказал, что есть недостатки. А какой еще энергичный ФП-язык можно посоветовать на замену сабжу? Я то конечно Схему и прочие Лиспы могу назвать, но вы же совсем заклюете за динамику :)
Alexander
я слышал что rust энергичный
Dmitry
никакой, в том-то и дело
Dmitry
хаскелл с расставленными аннотациями
Dmitry
rust энергичный, но фунциональный ли он?
Andrey
Раст имхо немного про другое, хотя в качестве варианта пойдет
Dmitry
Тут еще Swift был, кстати
Alexander
@voidlizard нет
Dmitry
не знаю, насколько жив, но вроде кто-то на нем что-то где-то делает
Alexander
не очень функциональный, хотя какое-то приближение к человеческому миру есть
Dmitry
еще интересно, как дела у F#
Влод
ну ребят, давайте если перечислять языки то с НКТ
Igor
еще интересно, как дела у F#
Хорошо, у нас даже чатик есть (см bio). Сейчас ради прикола делаю приложение на F# + ReactNative (он же еще в js компилируется) - пока заходит.
Dmitry
ok, а то всякие слухи доносились
Влод
сейчас посмотрел вроде и в миранде не было тайпклассов
Aleksei (astynax)
PureScript же энергичный "как Хаскель". Если таргетиться в JS не хочется, то можно в Си :)
Dmitry
я вот думал написать для пурскрипта бэкенд куда-нибудь, но меня остановило отсутствие 1) спецификации 2) понимания перспектив языка
Dmitry
ну т.е куда-нибудь - это на всё тот же мипс
Dmitry
@astynax а там есть сишный таргет?
Aleksei (astynax)
Пурскрипт на бэке используют и вполне успешно.
Dmitry
ссылок можно каких-нибудь?
Aleksei (astynax)
Синшный таргет есть и уже давно. Он конечно не основной, но вроде работает. Другое дело, что PureScript, это hosted язык, паразитирующий на чужой ВМ
Aleksei (astynax)
https://github.com/andyarvanitis/purescript-native
Aleksei (astynax)
А JS-бэк на вот этом всём делают: https://github.com/purescript-node
Dmitry
ну почему сиплюсплюс в качестве бэкенда... ааа
Aleksei (astynax)
Потому что авторы его знают :)
Leonid 🦇
Чтоб без libffi
Aleksei (astynax)
Возможно.
Aleksei (astynax)
Чтобы хоть какие-то либы поюзать
Leonid 🦇
Пурсе остро не хватате оптимизаций
Dmitry
для ФЯ оптимизации должны быть
Dmitry
иначе непрактично
Leonid 🦇
Тупо инлайнить $ не умеет
Leonid 🦇
Но движуха идет
Aleksei (astynax)
Расчитывают на JIT в целевой виртуалке :)
Дима
И не безосновательно
Dmitry
виртуалка - это V8 что ли?
Aleksei (astynax)
Браузер