Doge
Главное в лиспе что он необходимый минимум для написания чего угодно содержит.
Ну это много кто содержит без синтаксиса из одних скобочек
x
Ну в лиспе ещё есть некая ретро-романтика, это да.
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%82%D0%BE%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8
Doge
Берешь любое простое лямбда исчисление и у тебя всё то же самое
Nikolay
Какие?
System.IO.Pipelines
Doge
https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%82%D0%BE%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8
Ну очевидно не в этом смысле, а в смысле ретро компьютинга
x
Очевидно.
Doge
Главное в лиспе что он необходимый минимум для написания чего угодно содержит.
А вот именно нормальные гигиенические макросы, вроде бы как раз в схеме впервые и появились.
Doge
И тут да, долгое время аналогов не было вообще
Romɑn
System.IO.Pipelines
@vshapenko @Liminiens
Vladislav
Есть такое
Romɑn
Есть такое
https://t.me/fsharp_flood/119129
Igor
Ayrat
case Nil => start case (x::rest) => sum(rest, ...)
Igor
Ну тут ахинея, есть же Nil и h::t патерны
Ну, а когда надо использовать тот оператор?
Ayrat
Ну, а когда надо использовать тот оператор?
Когда у тебя много чего-то неизвестного?
Ayrat
С листом-то все ясно. Голова и хвост
Ayrat
Что именно не известно?
Элементов в разбираемом нечто
Ayrat
Так ты можешь что угодно перечислимое разобрать с этой звездочкой
Romɑn
case Nil => start case (x::rest) => sum(rest, ...)
Вы посмотрите на него!
Igor
Элементов в разбираемом нечто
Ладно, более реалистичный кейс, это если вместо List[T], будет Set[T] Но согласись, все равно пиздецово выглядит
Ayrat
Да, пиздецово
Ayrat
Скалу вообще можно заабузить и получится говно
x
Вы посмотрите на него!
я такое же потрясение испытал недавно, когда увидел на ютубе подборку интервью со Шварцем где он на немецком говорит. Вроде знал что умеет, а страшно
Ayrat
Но если не абузить, то норм
Igor
Но если не абузить, то норм
В смысле юзать, как джавку с сахаром?.. Для этого же вроде есть Котлин
Igor
Doge
В смысле юзать, как джавку с сахаром?.. Для этого же вроде есть Котлин
Так скаловские фичи абузов синтаксиса не требуют
Ayrat
Proposed changes for Pattern Matching in C# 9.0 - Draft Specification · Issue #2850 · dotnet/csharplang · GitHub https://github.com/dotnet/csharplang/issues/2850
Ayrat
Смотрите чо творится
Ayrat
В смысле юзать, как джавку с сахаром?.. Для этого же вроде есть Котлин
Да, как джаву с сахаром. Я бы не отказался от екзостив патерн матчинга, сегодня ногу себе прострелил из-за забытого кейса. Эх, скала, скала...
Ayrat
Там нет типов сум. ФП язык бля
Ayrat
флажки проставлять надо было
Ну-ка зажги. У меня есть 3 кейс класса с одним трейтом. Матчу по объекту с типом трейта
Андрей
я про канпелятор, там есть флаг для ексхаустив
Ayrat
Или только всякие листы
Андрей
кейс классы точно, листы без кондишнов думаю тоже, щас не помню
Ayrat
Проверю завтра, публично буду шапку жевать если правда
Андрей
где-то есть целый список рекомендуемых флагов от одного разраба, в scalac их туева хуча, и даже сбт плагин для списка этого. Некоторые опции типа этого сильно полезны.
Doge
erlang смеется тебе в лицо
Ну именно в перформансе в плане вычислений он не очень.
Андрей
В идее встроенный норм
она кажется одного из них и юзает
Doge
В идее встроенный норм
У меня в некоторых проектах вот этот настроен: http://www.wartremover.org/doc/warts.html
Андрей
У меня в некоторых проектах вот этот настроен: http://www.wartremover.org/doc/warts.html
у меня помнится не прижился, чото он сильно уж жоский! 😆
Doge
у меня помнится не прижился, чото он сильно уж жоский! 😆
Поэтому он у меня только в некоторых включен. Там где есть унаследованный код или куча интеграций с плохой джавой, его правилам достаточно сложно будет следовать.
Doge
Но если проект с нуля, то нормально зайдёт.
Shub
Ну именно в перформансе в плане вычислений он не очень.
В плане вычислений фпшечка меркнет перед божественным Фортраном, так что так себе метрика
Shub
Ну хаскель может близко подобраться.
Это если на нем писать всупротив всем идиомам, проваливаясь в императив и ансейф на каждом шагу? Можно конечно, но так и на эрланге можно запилить BIF и сказать «смотри мам, я быстро считаю».
Doge
Да, до уровня си или фортрана один в один не достанет, но будет относительно близко.
Диёр
Ой, фу, байтоебство
Yurii
прогроммисты уже не те
Shub
Нет, он и так может себя неплохо показать, если правильные структуры данных в правильных местах юзать
Мы щас что вообще обсуждаем, насколько хорошо язык А отдаёт управление в сишные либы по сравнению с языком Б, или насколько быстрее становится Хаскель, если его урезать до уровня нетипизированного лямбда-счисления? Мне важно понять, какую домашнюю заготовочку расчехлять
Shub
А то ведь абсолютно все моменты, делающие хаскель хаскелем, имеют прибитый ценник со внушительными числами на нем
Doge
Мы щас что вообще обсуждаем, насколько хорошо язык А отдаёт управление в сишные либы по сравнению с языком Б, или насколько быстрее становится Хаскель, если его урезать до уровня нетипизированного лямбда-счисления? Мне важно понять, какую домашнюю заготовочку расчехлять
Скорее про то, что в ФП языках с динамической типизацией сложно добится разумной производительности в cpu-bound задачах. В то время как в ФП языках со статической типизацией это ощутимо проще
Диёр
cpu-bound всё равно на фортране или сишке будет, так что какая разница
Shub
Скорее про то, что в ФП языках с динамической типизацией сложно добится разумной производительности в cpu-bound задачах. В то время как в ФП языках со статической типизацией это ощутимо проще
Вообще-то нет. Вообще-то типизация имеет околонулевое отношение к производительности. Статическая типизация «всего лишь» означает, что проверка type soundness происходит во время компиляции, в тех же плюсах в рантайме можно творить просто чудеса с типами с минимальным пенальти, не говоря уже о том, что в момент исполнения информация о типах уже утеряна. Так же нет никаких потерь производительности, обусловленных динамической типизацией - Lua тому очень яркий пример.
Shub
Простота реализации никоим образом не следует из типизации: язык ассемблера у нас какую типизацию имеет?
habib
sbcl*