Anton
посмотри хаскел или ерланг
Anton
раст императивный + всякие фпшные причуда
Loyd
Но вообще так-то да, раст очень даже функциональный
Loyd
Ну, точнее никто не мешает писать на нём в функциональном стиле.
Anton
нифига он не фунциональный. ты ФП знаешь? это не только .iter.map , это вообще куча рекурсий, всяких стрелок и тд
Loo
Mark
Loyd
Так тут нет её. Мы же про борроуинг, а не про оунинг
Anonymous
f = unsafePerformIO . putStrLn
Loyd
Anton
функциональный стиль.. не годится на проекты вроде игрового движка, где часто надо обращаться к каким-то стораджам, а не гонять данные из функции в функцию. Иначе выходит функция с 30 аргументами внутри, причем засунуть их в структуру нельзя по вышеприведенной причине
Loyd
Ладно, повесилил ты нас, конечно
Andrei
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
значит дураки то есть
A64m
и что?
Alexander
так порешали, а то я проблему воспроизвести не могу
Alexander
https://gist.github.com/1aa88243f303b7481e7ad6b9506ed658
Anonymous
и что?
"писать FP без GC дураков нет"
Anonymous
отвечаю просто
A64m
там все равно весь язык для гц спроектирован. Ну будут там линейные типы, гц никуда не денется
Alexander
вроде мутабельные a,b, кладу a в б просблем нету
Alexander
функциональная парадигма не запрещает мутабельный стейт есличо
Loyd
Не пойму, как вы связываете линейные с отсутствием гц
Loyd
mov-инг может быть и в япе с гц
A64m
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
Ну, точнее про аффинные, мы всё-таки про них
Alexander
Loyd
Ъ
Anton
Раст императивный + фичи из ФП. ФП обстрактен, на нем нельзя писать драйверы и под МК, он всегда требует VM и GC. почитайте про то, что может VM erlang который обрабатыает 10млн потоков.
Alexander
ФП / VM erlang
Alexander
прекрасно-прекрасно
Крылатый
Loyd
Loyd
Хотя, некоторым вон доставляешь
Loyd
да
А что за фирма, если не секрет?
Alexander
Mark
Loyd
Loyd
Да и тогда бы уже определиться, что за функциональщину считать
Anton
Я петушок.. окей.. читай лучше.
Loyd
А то сейчас придём к тому, что лисп не функциональный
Alexander
лисп кстати был не функциональным изначально :)
Loyd
Alexander
предсказуемый fusion
Anton
И судя по всему вы с такими проблемами не сталкивались.. и не случайно. Вы не писали проекты со сложной архитектрой на 10к строк на расте + с большим кол-вом "псевдонаследования" да и тупо композицией.
Alexander
все эти иммутабельные эффективные вектора
Alexander
чтобы не надо было 100500 специализаций писать особенно для полиморфной рекурсии (что вроде невозможно)
A64m
Anton
напишите мне о ФП языках без GC и без VM одновременно