Информация об изменениях

Сообщение Re[2]: Госспади, отправь на пенсию воспитанников фортрана! от 17.11.2025 14:41

Изменено 17.11.2025 16:40 rg45

Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, sergii.p, Вы писали:

SP>"длинные слова меня только расстраивают"


SP>C++:

SP>
SP>nums | std::view::filter([](int n) { return n % 2 == 0; }) | std::views::transform([](int n) { return n * n; });
SP>

SP>Haskell:
SP>
SP>map (^2) (filter even nums)
SP>


В С++ ты можешь наопределять себе какого угодно синтаксического сахара самостоятельно:

namsepace my
{
   using std::views::filter;
   inline constexpr auto map = std::views::transtorm;
   inline constexpr auto even = [](std::integral auto n) {return n % 2 == 0;};
   inline constexpr auto sqr = [](const auto& n) -> decltype(n * n) {return n * n;};
} // namespace my


И юзай его потом, будет не хуже чем на хаскеле:

nums | filter(even) | map(sqr)


Конечно, такого синтаксического кариеса как "map(^2)" не получится, но, имхо, это и к лучшему.
Re[2]: Госспади, отправь на пенсию воспитанников фортрана!
Здравствуйте, sergii.p, Вы писали:

SP>"длинные слова меня только расстраивают"


SP>C++:

SP>
SP>nums | std::view::filter([](int n) { return n % 2 == 0; }) | std::views::transform([](int n) { return n * n; });
SP>

SP>Haskell:
SP>
SP>map (^2) (filter even nums)
SP>


В С++ ты можешь наопределять себе какого угодно синтаксического сахара самостоятельно:

http://coliru.stacked-crooked.com/a/5282ddfc8627ed2d

namsepace my
{
   using std::views::filter;
   inline constexpr auto map = std::views::transform;
   inline constexpr auto even = [](std::integral auto n) {return n % 2 == 0;};
   inline constexpr auto sqr = [](const auto& n) -> decltype(n * n) {return n * n;};
} // namespace my


И юзай его потом, будет не хуже чем на хаскеле:

nums | filter(even) | map(sqr)


Конечно, такого синтаксического кариеса как "map(^2)" не получится, но, имхо, это и к лучшему.