LINUX.ORG.RU

Монадические операции: быть или не быть?

 , c++23


0

6

Кто не знал, в C++23 добавили «монадические операции» для std::optional. Вот тут можно посмотреть пример:

https://www.cppstories.com/2023/monadic-optional-ops-cpp23/

Что бы вы предпочли в своем коде: первый вариант (по старинке с if(x) …) или второй, монадический? При условии, разумеется, что вам доступен и разрешен C++23.

Лично я - первый, и вот, почему:

1) во-первых, классический пример уже неоправданно многословен. Зачем писать «if (x) … if (! x) …», когда можно просто «if (x) … else …»;

  1. автор как бы специально хочет показать, что с монадическими код короче, и специально вставляет пустые строки между if’ами, там где с монадическими операциями пишет всё подряд без пустых строк;
  2. приходится на пустом месте создавать лямбды;
  3. а что, если будет два std::optional, и второй используется опционально, при условии, что первый установлен? Тогда забор из лямбд.

Такое ощущение, что делается это всё ради жертвы богу функциональщины.

А вы как считаете?

★★★★★

Последнее исправление: seiken (всего исправлений: 2)
Ответ на: комментарий от alysnix

Угу.
Программисту требуется ЯП, который позволил бы писать readable
алгоритмы, а не возможности удобно «косички заплетать» и иная ... (ну вы поняли).

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от Virtuos86

Да нет, может по крайней мере не в СНГ, вижу дофига студентов, в основном с инженерных специальностей, которые работали или хотят работать с железками, идут в сишников или плюсовиков. С другой стороны у меня и выборка небольшая

snake266 ★★★
()
Ответ на: комментарий от anonymous

Мичуринство

будто что-то плохое. Вейсмана с Морганом все дружно забыли, поповские байки Менделя так вообще молекулярная биология (зародивсшаяся после опытов Опарина, кстати) опровергла - по его «законам» наследуется ничтожное количество признаков.

А вот мичуринские культивары едят по всей планете на завтрак, обед и ужин.

капча: выбрать тортик среди петухов и лягушек

anonymous
()
Ответ на: комментарий от Virtuos86

Окно для появления таких уродцев, как плюсцы, давно закрыто. Сейчас только корпоративные язычки рулят.

Не будем забывать, что и C и C++ были когда-то созданы корпорацией под названием AT&T, а точнее ее подразделением Bell Labs. Наш любимый UNIX, кстати, тоже. Корпорации рулили всем и всегда, хоть некоторые их поделия и отзываются теплой ламповой ностальгией.

spbzip
()