Anton
посмотри хаскел или ерланг
Loyd
Раст функциональный? ахахах
Значения слова "сродни" ты не знаешь, да?
Anton
раст императивный + всякие фпшные причуда
Loyd
Но вообще так-то да, раст очень даже функциональный
Loyd
Ну, точнее никто не мешает писать на нём в функциональном стиле.
Anton
нифига он не фунциональный. ты ФП знаешь? это не только .iter.map , это вообще куча рекурсий, всяких стрелок и тд
Loyd
Так тут нет её. Мы же про борроуинг, а не про оунинг
Anonymous
f = unsafePerformIO . putStrLn
Anton
функциональный стиль.. не годится на проекты вроде игрового движка, где часто надо обращаться к каким-то стораджам, а не гонять данные из функции в функцию. Иначе выходит функция с 30 аргументами внутри, причем засунуть их в структуру нельзя по вышеприведенной причине
Loyd
Ладно, повесилил ты нас, конечно
Anonymous
Раст функциональный? ахахах
это одна из основных парадигм
Anton
я ФП не шибко знаю, но ты видимо не писал на нем что-то вроде движка с огромным кол-вом
Anonymous
а идрис
A64m
там-то ГЦ есть
Anton
такой хрени pub struct Render { render_receiver:RenderReceiver, supervisor_sender:SupervisorSender, controller_sender:ControllerSender, process_sender:ProcessSender, window: Window, targets:Targets, //clear_color: [f32; 4], gfx_device: gfx_gl::Device, encoder: Encoder, //pub pso: gfx::PipelineState<gfx_gl::Resources, pipe::Meta>, //pso_wire: gfx::PipelineState<gfx_gl::Resources, pipe::Meta>, storage: Storage, slots: Slots, //font: rusttype::Font<'static>, //pub data: pipe::Data<gfx_gl::Resources>,
Anton
И как вы будете таскать эти поля в каждую функцию?
Andrei
а идрис
оно жеж RTS в сишечьку линкует
Anton
они нужны ВСЕГДА!
Anonymous
там-то ГЦ есть
там же пробуют прикручивать линейные типы
Anonymous
значит дураки то есть
A64m
и что?
Alexander
так порешали, а то я проблему воспроизвести не могу
Alexander
https://gist.github.com/1aa88243f303b7481e7ad6b9506ed658
Anonymous
и что?
"писать FP без GC дураков нет"
Anonymous
отвечаю просто
A64m
там все равно весь язык для гц спроектирован. Ну будут там линейные типы, гц никуда не денется
Alexander
вроде мутабельные a,b, кладу a в б просблем нету
Alexander
функциональная парадигма не запрещает мутабельный стейт есличо
Loyd
Не пойму, как вы связываете линейные с отсутствием гц
Loyd
mov-инг может быть и в япе с гц
Loyd
В хаскеле вон тоже трут про линейные
Alexander
да, да, мы их пилим
Alexander
(фирма где я работаю)
Anton
А если кого-то смешат "стрелки всякие", значит уж точно вы не знаете ФП https://ru.wikibooks.org/wiki/Haskell/%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B8
Alexander
но это длинная история, которая не изменит все сразу, там не то так просто
Alexander
стрелки не нужны
Alexander
это ж Strong Profunctor просто
Loo
> Давайте сначала разберёмся со стрелочной нотацией. Мы будем работать с самой простейшей стрелкой, с функцией, и напишем маленькую бесполезную программу лишь только для того, чтобы познакомиться с синтаксисом.
Alexander
+ сахар синтаксический
Mark
жаль у вас нельзя в стикеры
Mark
у меня со стрелками как раз есть 🙁
Loo
хуячь
Mark
Loyd
да, да, мы их пилим
Это был ответ на линейку?
Loyd
Ну, точнее про аффинные, мы всё-таки про них
Loyd
Ъ
Anton
Раст императивный + фичи из ФП. ФП обстрактен, на нем нельзя писать драйверы и под МК, он всегда требует VM и GC. почитайте про то, что может VM erlang который обрабатыает 10млн потоков.
Alexander
ФП / VM erlang
Alexander
прекрасно-прекрасно
Loyd
Раст императивный + фичи из ФП. ФП обстрактен, на нем нельзя писать драйверы и под МК, он всегда требует VM и GC. почитайте про то, что может VM erlang который обрабатыает 10млн потоков.
Господи, петушок. Ну заканчивай ты уже кококококо. Нет у людей столько времени, чтобы объяснять тебе в деталях в чём ты неправ в каждой конкретной строчке
Loyd
Хотя, некоторым вон доставляешь
Loyd
да
А что за фирма, если не секрет?
A64m
Почему ФП требует VM и GC?
для решения UFP, полиморфизма на универсальном представлении, стека в куче
Mark
для решения UFP, полиморфизма на универсальном представлении, стека в куче
а есть хорошая литература, чтобы нырнуть поглубже?
Loyd
для решения UFP, полиморфизма на универсальном представлении, стека в куче
Что ещё за "полиморфизм на универсальном представлении"?
Loyd
Да и тогда бы уже определиться, что за функциональщину считать
Anton
Я петушок.. окей.. читай лучше.
Loyd
А то сейчас придём к тому, что лисп не функциональный
Alexander
лисп кстати был не функциональным изначально :)
Cuno
да, да, мы их пилим
А зачем в вашем прекрасном хаскеле линейные типы?
Alexander
А зачем в вашем прекрасном хаскеле линейные типы?
доп гарантии безопасности типа session types и стейта всяких машинок, возможность данные off-GC-heap держать
Alexander
предсказуемый fusion
Anton
И судя по всему вы с такими проблемами не сталкивались.. и не случайно. Вы не писали проекты со сложной архитектрой на 10к строк на расте + с большим кол-вом "псевдонаследования" да и тупо композицией.
Alexander
все эти иммутабельные эффективные вектора
Alexander
Что ещё за "полиморфизм на универсальном представлении"?
универсальное представление = все объекты выглядят одним способом
Alexander
чтобы не надо было 100500 специализаций писать особенно для полиморфной рекурсии (что вроде невозможно)
Anton
напишите мне о ФП языках без GC и без VM одновременно
Loyd
универсальное представление = все объекты выглядят одним способом
Это-то понятно, чем полиморфизм для них отличается от обычных видов (adhoc и параметрический)?