169 похожих чатов

Кстати, а почему везде и все пишут что Р это

функциональный язык программирования (бывает что доходит и до того что не язык программирования)?

Хотя по Р есть даже курсы обьектно ориентированное программирование в Р?

37 ответов

15 просмотров

R — мультипарадигменный язык, в нём есть и объекты, но они чаще всего списками просто представлены.

helby- Автор вопроса
Eva Shelley
R — мультипарадигменный язык, в нём есть и объекты...

А в чем разница, от типичного обьектно ориентированного языка? Сори если глупый вопрос

Потому что обычно заточен под функциональный стиль, но не ограничивается только им, как какой-нибудь хаскель. То есть функция как объект - пожалуйста. Подход «я знаю, какая здесь нужна функция, остаётся подобрать правильные аргументы» - тоже поощряется.

helby
А в чем разница, от типичного обьектно ориентирова...

Если честно, я даже не могу примеры привести чисто ОО-языка...

helby- Автор вопроса
Дмитрий Володин
Потому что обычно заточен под функциональный стиль...

То есть на Р можно по сути делать всё тоже самое что C и Жаве, например?

helby
А в чем разница, от типичного обьектно ориентирова...

сегодня по этой теме наткнулся на ироничный афоризм: "Everything in R is an object... and if it does something, then the type of object is function."

Dm Kb
сегодня по этой теме наткнулся на ироничный афориз...

Ну да. Ещё замыкания вроде тоже признак функционального языка. Вот тут всплывало colnames(do) <- x. Так как Р у меня первый полноценный язык, мне норм. Но если приглядеться, то это же дичь. Результату вызова функции над объектом присваивается какое-то значение

Дмитрий Володин
Ну да. Ещё замыкания вроде тоже признак функционал...

я такой синтаксис не использую, мне кажется это скорей атавизм

Dm Kb
я такой синтаксис не использую, мне кажется это ск...

А как переименовывать колонки? Меня вариант из dplyr как раз раздражает, если честно))

Igor Yegin
В data.table есть функция setnames()

А он как раз тоже не нравится. Потому что изменение объекта без присваивания. По ООПшному как-то))) но это дело вкуса, конечно

Дмитрий Володин
А как переименовывать колонки? Меня вариант из dpl...

rename и rename_wth - очень удобные функции... особенно при использовании !! bang bang оператора )))

Igor Yegin
По ООПшному в петоне, наверное

Я знал, что обсуждение сведётся к нему, вот знал))

Дмитрий Володин
Я знал, что обсуждение сведётся к нему, вот знал))

Потому что ООП — не совсем стиль R. Это данность. Вряд ли бы вы стали от Фортрана требовать ООПшных примочек (я утрирую, разумеется)

Eva Shelley
Да. Это полноценный язык же.

А что на Р можно скажем написать исполняемую программу?

Igor Yegin
Потому что ООП — не совсем стиль R. Это данность. ...

Кстати, вроде в современном фортранеесть ООП))

helby
Аналогичный вопрос был)))

Конечно. Более того, есть библиотеки, чтобы делать shiny приложения привычными экзешниками на винду))

helby
А в чем разница, от типичного обьектно ориентирова...

ООП вообще неприменимо для настоящей работы с данными. 90% памяти жрут исходные данные. никаких копирований, скрытых свойств и прочего полиморфизма. считайте, что у вас дерево и набор резцов (функции)

helby
То есть на Р можно по сути делать всё тоже самое ч...

нет. каждый язык имеет свою специфику. на R вы с указателями точно не поработаете без Rcpp

helby- Автор вопроса
helby
Зачем тогда ооп все учат?

честно? сложно сказать, сильно от предметной области зависит. поговорите с промышленными разработчиками. они от сложности и надуманности С++ вообще не в восторге

Andrey
В mlr3 неплохо ООП прикручено и к месту.

реально оно для работы с данными как пятая нога. несколько раз приходилось разрушать все это ООП-шные конструкции, как только давали полную нагрузку на прототип. данные жрут всю память и еще одно теневое копирование рушит все. так... на небольших сабсетах поиграться. либо для объектов типа логгера/коннекта к внешней системе

Ilya Shutov
реально оно для работы с данными как пятая нога. н...

Я не проверял, где в mlr3 создаются дополнительные копии? Имеется ввиду, неужели такой большой оверхед при запуске xgboost/lightgbm/catboost отдельно и внутри пайплайна mlr3?

Andrey
Я не проверял, где в mlr3 создаются дополнительные...

да неважно, смотрите объекты, смотрите код. дело в том, что к приватным данным могут получить доступ только доверенные метода (собств. функции, родительские или друзья... деталей уж не помню). Если у вас вся логика крутится вокруг большого размера данных, то прятать их в приватную часть какому-то классу — сомнительное архитектурное решение.

Ilya Shutov
screenshot скриншот из выложенной книги

Ой, не нужно сейчас... а то можно уйти в философию Гегеля относительно того какая же универсальная модель способна описать окружающий мирт

Ilya Shutov
да неважно, смотрите объекты, смотрите код. дело в...

я ж не про деплой какой-то одной большой модели, которая еще и переобучается (в хорошем смысле) постоянно на новых данных. Тогда никакие обертки не нужны. А для тюнинга с гридсёрчем всяко нужен фреймворк. Можно самописный, но не факт что даже для частного случая экономнее mlr3 выйдет

Andrey
я ж не про деплой какой-то одной большой модели, к...

mlr3 появился не просто так. автор честно признавался, что не может больше поддерживать mlr и дешевле все переписать.

Andrey
я ж не про деплой какой-то одной большой модели, к...

А какие сейчас есть хорошие практики заводить переобучающуюся модель, чтобы кормить её данными постепенно с минимальным временем простоя при этом?

Dm Kb
Ой, не нужно сейчас... а то можно уйти в философию...

кто хочет — читает. кто не хочет — не читает.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта