И совершенно о другом
2022-04-13 11:13Все эти ваши монады-шмонады, функторы-шмункторы, безопасная работа с памятью и прочая ересь - ето, конечно хорошо. Но покажите мне язык программирования, в котором вот это, можно написать по человечески, через транзакцию.


(no subject)
Date: 2022-04-13 09:03 (UTC)(no subject)
Date: 2022-04-13 10:05 (UTC)(no subject)
Date: 2022-04-13 10:47 (UTC)а что именно ненравится? Напишите хотябы псевдокод как вы хотите, чтобы оно выглядело. Ну вроде у интелов была транзакционная память intel tsx, но в каком состоянии ее поддержка - я без понятия.
> когда функции get_ это не совсем get и имеют еще некоторое количество сайд эффектов
Тогда желательно не называть ее get, потому что гет предполагается без сайд эффектов.
И в современном программировании предпочтительней использовать для такого неизменяемые переменные. Єто более идеоматично, и тогда код мог бы выглядеть как-то так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e0576b2ee1c4160a06e2af08dbd11e40
Соответственно, когда вы перегружаете a,b,c - это не вполне нормальный подход, отсюда и костыльность решения.
(no subject)
Date: 2022-04-13 10:04 (UTC)(no subject)
Date: 2022-04-13 10:05 (UTC)На вот, возьми её скорей!
Date: 2022-04-13 11:56 (UTC)https://github.com/openssl/openssl/blob/02119faee397565525151eb2ce39c424d129d287/crypto/cms/cms_dh.c#L19-L78
Re: На вот, возьми её скорей!
Date: 2022-04-13 13:02 (UTC)(no subject)
Date: 2022-04-13 13:12 (UTC)(no subject)
Date: 2022-04-13 13:29 (UTC)(no subject)
Date: 2022-04-13 13:40 (UTC)Немножко наоборот.
Ошибка в коде должна выявляться на этапе компиляции. (Не не ошибка в данных; там нужна монада.)
(no subject)
Date: 2022-04-13 13:48 (UTC)Истинное положение вещей проявляется, когда словесные конструкции строятся не только грамматически, но и контекстно грамотно.
И необработка ошибки в данных -- это тоже ошибка в коде.
(no subject)
Date: 2022-04-13 13:58 (UTC)Необработка - само собой.
Кстати, хорошая идейка; спасибо. Подумаю, что вообще можно в этом смысле поделать.
(no subject)
Date: 2022-04-13 14:08 (UTC)(no subject)
Date: 2022-04-13 15:10 (UTC)Хм. Я думал, человек выбирает инструмент по задаче.
(no subject)
Date: 2022-04-13 15:23 (UTC)Если задача сделать полкубометра защищённого объёма для хранения опделелённых вещей, вариантов гораздо больше.
(no subject)
Date: 2022-04-14 08:25 (UTC)Ха. Я полгода назад изготовлял четыре больших ящика, для килнов разного размера. Гвозди-то у меня были, но я купил шурупы. Потому что еще же разбирать надо было, без потрясений чтоб.
(no subject)
Date: 2022-04-13 13:38 (UTC)Тут не монада нужна, а аппликативный функтор. Фигн делов, два байта переслать. Учитесь, товарищ, функциональному программированию.
(no subject)
Date: 2022-04-14 07:22 (UTC)