Size: a a a

Конференция C++ Russia

2020 August 02

m

magras in Конференция C++ Russia
Вообще для меня scope_guard это решение, когда нужен raii, но ради одного использования не хочется делать честную обертку.
источник

G

Gabriele in Конференция C++ Russia
I am curious to know what is the general opinion in this group about RAII
источник

G

Gabriele in Конференция C++ Russia
So if anyone is interested, can you write your thoughts about it
источник

G

Gabriele in Конференция C++ Russia
Just I do not know if I can read this evening, but I will try to read tomorrow
источник

VS

Vladimir SHCHerba in Конференция C++ Russia
What exactly are you interested in?
источник

G

Gabriele in Конференция C++ Russia
Just in your opinion. If someone has some relevant or interesting comment to write about it. I like to read opinions about programming techniques, if they are constructive or thoughtful remarks.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
magras
Если серьезно, то я думаю основное отличие в иммутабельности в функциональных языках.
ну, то есть лисп и многие другие ЯП сразу идут нафиг?
источник

AV

Alexey Veselovsky in Конференция C++ Russia
ну и точно ФП невозможно в питоне и всяких там js?
источник

m

magras in Конференция C++ Russia
Alexey Veselovsky
ну и точно ФП невозможно в питоне и всяких там js?
Там возможны элементы функционального программирования. Как и во многих других языках. Но в целом, мне сложно их назвать функциональными.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
ну, тогда Си ничем не хуже 🙂
источник

m

magras in Конференция C++ Russia
Alexey Veselovsky
ну, то есть лисп и многие другие ЯП сразу идут нафиг?
Лисп я слишком плохо знаю, чтобы сказать наверняка, но мне казалось у него иммутабельная семантика, даже если реализация мутирующая.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
да даже у окамла есть mut поля
источник

m

magras in Конференция C++ Russia
Alexey Veselovsky
ну, тогда Си ничем не хуже 🙂
Да, но его основной стиль будет императивным, а не функциональным.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
magras
Да, но его основной стиль будет императивным, а не функциональным.
императивный - это в другой плоскости же, он не в противовес функциональному, а в противовес декларативному

в основной ФП-код является императивным
источник

AV

Alexey Veselovsky in Конференция C++ Russia
редко когда декларативным
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
magras
То есть вместо
resource r = init;
...
if (err)
 goto cleanup;
...
cleanup:
free(r);

пишется
resource r = init;
auto resouce_free_guard = scope_guard([&]{ free(r); });
if (err)
 return;
Во-первых, код начинал писаться во времена С++03. Лямбд не было ещё, а мне уже досталось много в наследство.

Во-вторых, код там был в Си-стиле, потому что были плану по переписыванию всего на чистый Си.

В третьих, я уже смутно помню зачем и почему там было всё так, как было. Вопрос лишь был - видел ли я такой код и да я видел) Вопрос зачем - другой вопрос.
источник

m

magras in Конференция C++ Russia
Alexey Veselovsky
императивный - это в другой плоскости же, он не в противовес функциональному, а в противовес декларативному

в основной ФП-код является императивным
гм. Я этот термин считал синонимом процедурного. Не обращал внимания, что он противопоставляется декларативному. Спасибо, сегодня я узнал что-то новое.
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
magras
Если серьезно, то я думаю основное отличие в иммутабельности в функциональных языках.
Основное требование к тому, чтобы код считался "функциональным" - это чтобы все функции были чистыми и чтобы поддерживались функции высшего порядка.

На Си такое можно, но ОЧЕНЬ больно.
источник

G

Gabriele in Конференция C++ Russia
Pavel Zhigulin
Основное требование к тому, чтобы код считался "функциональным" - это чтобы все функции были чистыми и чтобы поддерживались функции высшего порядка.

На Си такое можно, но ОЧЕНЬ больно.
Yes, I already wrote earlier about forcing a language to be written in a foreign style
источник

G

Gabriele in Конференция C++ Russia
It is uncomfortable, innatural, and often useless, or even painful
источник