ufm: (Default)
[personal profile] ufm
Все эти ваши монады-шмонады, функторы-шмункторы, безопасная работа с памятью и прочая ересь - ето, конечно хорошо. Но покажите мне язык программирования, в котором вот это, можно написать по человечески, через транзакцию.

(no subject)

Date: 2022-04-13 10:47 (UTC)
From: [personal profile] chabapok
> Это всё равно "закат солнца вручную".

а что именно ненравится? Напишите хотябы псевдокод как вы хотите, чтобы оно выглядело. Ну вроде у интелов была транзакционная память intel tsx, но в каком состоянии ее поддержка - я без понятия.

> когда функции get_ это не совсем get и имеют еще некоторое количество сайд эффектов

Тогда желательно не называть ее get, потому что гет предполагается без сайд эффектов.

И в современном программировании предпочтительней использовать для такого неизменяемые переменные. Єто более идеоматично, и тогда код мог бы выглядеть как-то так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e0576b2ee1c4160a06e2af08dbd11e40


Соответственно, когда вы перегружаете a,b,c - это не вполне нормальный подход, отсюда и костыльность решения.