@ProCxx

Страница 2262 из 2477
Ilia
06.08.2018
11:48:04
isnullxbh
06.08.2018
11:50:59
> Я вот например функциональные языки совсем за другое люблю... Ну и скажем так, не совсем все люблю и не совсем фукнциональные.

> не совсем все люблю и не совсем фукнциональные

Или это был сарказм?

Google
Ilia
06.08.2018
11:54:39
Понятие "функциональный язык" странное, оно в общем каждым трактуется по-своему. Одни думают, что функциональный язык -- это фукнционально чистый, без побочных эффектов. Другие думают, что по определению, что достаточно чтобы функции в языке были объектами первого рода (т.е. можно было бы грубо говоря манипулировать функциями как данными). Я всё же придерживаюсь второго подхода.

Ну и мне лично фукнциональные нравятся больше за их высокоуровневость, а не за чистое фукнциональное программирование

Alexander Alprog
06.08.2018
11:56:29
луа - фунциональный язык получается

ну такое себе

Ilia
06.08.2018
11:58:24
Да и С получается фукнциональный язык, да.

Да, я понимаю скепсис, но тем не менее.

Alexander Alprog
06.08.2018
12:00:26
да не, это всего лишь термин

кто как хочет, так и понимает. но думаю, большинство склоняются к первому варианту

Ilia
06.08.2018
12:03:57
Но это глупо.

isnullxbh
06.08.2018
12:06:57
Тут, кажется, пруфы с вики подходят, поэтому https://ru.m.wikipedia.org/wiki/Функциональное_программирование

Про операторы там тоже сказано, но не выделяют это как концепцию

Ilia
06.08.2018
12:10:12
Тут, кажется, пруфы с вики подходят, поэтому https://ru.m.wikipedia.org/wiki/Функциональное_программирование
Это всё да, правильно, но это описание чисто математической идеи, по факту-то ну наверное половина фукнциональных языков -- "грязные"

Ну ладно давайте завяжем тему...

Google
Alex
06.08.2018
12:40:26
Указатель
Если ты имеешь ввиде вот так: template<const char* val> void func() { std::cout << val << std::endl; } - то это работать не будет (в том виде, как я написал), только если в качестве аргумента передать глобальный const char[] = "...";

Aidar
06.08.2018
12:40:50
Вы по дефолту должны думать что там может что-то выпасть а не наоборот

Antony
06.08.2018
13:01:54
Императивный стиль приятнее. Намного веселее машине приказывать, чем передавать калькулятору функции для вычислений :)

Ilia
06.08.2018
13:02:17
Если ты имеешь ввиде вот так: template<const char* val> void func() { std::cout << val << std::endl; } - то это работать не будет (в том виде, как я написал), только если в качестве аргумента передать глобальный const char[] = "...";
Вообще, парень, честоно - половина народу не понимает, что тебе надо и главное зачем. Тип строкового литерала разный, нафига тебе параметризировать им класс, не ясно.

Matwey
06.08.2018
13:08:41
Императивный стиль приятнее. Намного веселее машине приказывать, чем передавать калькулятору функции для вычислений :)
Гораздо веселее сформулировать что нужно посчитать, а компьютер пусть проявляет армейскую смекалку и сам разбирается как считать.

Александр
06.08.2018
13:09:44
Вообще, парень, честоно - половина народу не понимает, что тебе надо и главное зачем. Тип строкового литерала разный, нафига тебе параметризировать им класс, не ясно.
я прекрасно понимаю - шаблонизация строкой ничем не хуже, чем каким-нибудь int'ом - это compile-time строковое свойство класса

Chiveson
06.08.2018
13:10:17
Подскажите, random_device является csprng, но если им генерить числа, то энтропия падает, говорят использовать mt19937, но он не криптостойкий, как мне в c++ сделать csrng?

Combot
06.08.2018
13:13:22
Alex Ushanov (0) увеличил репутацию Александр Караев (1)

Дед Пегас
06.08.2018
13:37:00
Императивный стиль приятнее. Намного веселее машине приказывать, чем передавать калькулятору функции для вычислений :)
Ну такое. Я бы сказал, важно совмещать функциональный с императивным в пропорциях 2/1 и будет щастье.

Antony
06.08.2018
13:37:41
Подскажите, random_device является csprng, но если им генерить числа, то энтропия падает, говорят использовать mt19937, но он не криптостойкий, как мне в c++ сделать csrng?
random_device - это обёртка над /dev/random или /dev/urandom или криптопровайдерами Windows Наксколько они удовлетворят вашим нуждам - решать вам.

Alexander
06.08.2018
13:37:44
а пропорции откуда взяты?

Дед Пегас
06.08.2018
13:38:08
а пропорции откуда взяты?
Императивно из своей практики. Пока щаслев.

Antony
06.08.2018
13:40:03
random_device - это обёртка над /dev/random или /dev/urandom или криптопровайдерами Windows Наксколько они удовлетворят вашим нуждам - решать вам.
Ещё иногда random_device - это обёртка над генератором чисел, вшитом в процессор. Но лично я побаиваюсь ему доверять

Google
Александр
06.08.2018
13:41:06
Ну вот, я все пропустил ?

Ilia
06.08.2018
13:41:33
А и не было ничего

Sergey
06.08.2018
13:42:13
народ, я правильно понимаю, что присваивание shared_ptr самому себе не должно вызывать проблем? Это вроде как один из принципов реализации operator=

Ilia
06.08.2018
13:42:40
Ну да

Anatoly
06.08.2018
13:43:06
Вы по дефолту должны думать что там может что-то выпасть а не наоборот
Я уже отказался у себя от эксепшенов в пользу аналогов Either. Больше всего раздражает, что есть какая-то функция какой-то библиотеки и она может бросить эксепшен и может так произойти, что автор не указал список возможных. Тот кто поумнее - описывает бросаемые эксепшены в доксигене.

Sergey
06.08.2018
13:43:49
Ну да
спасибо)

Aidar
06.08.2018
13:43:51
А как вы память выделяете?

nothrow?

И вы ваще не пользуетесь внешним кодом?

Дед Пегас
06.08.2018
13:45:06
Императивно из своей практики. Пока щаслев.
Ваще, выбирать выбирать стиль ФП или ИП (или их смешение) в каждом конкретном случае нужно. Это как выбор любовных практик между партнёрами. Только партнёры тут программист и машина. ?

Ilia
06.08.2018
13:45:40
Дед Пегас
06.08.2018
13:45:55
Azoyan
06.08.2018
13:46:38
Она нижний.
в смысле, машина не партнёр. Партнёрство предполагает равенство прав и обязанностей.

Александр
06.08.2018
13:46:59
А почему рассматривается только _автоматическая параллелизация_? Ведь в ФП есть много всего, что делает параллельное программирование проще и приятнее, и это не автоматическое

Google
Aidar
06.08.2018
13:47:25
И ваще хз кто юзает доксигены

Дед Пегас
06.08.2018
13:47:36
Я юзаю.

Azoyan
06.08.2018
13:47:44
Ну вы явно не за BDSM(
ты расстроился?

Aidar
06.08.2018
13:47:44
Какая разница какой

Дед Пегас
06.08.2018
13:48:00
Anatoly
06.08.2018
13:48:01
Любой
Это безумие

Aidar
06.08.2018
13:48:13
Это безумие
Что тебе даст инфа о типе эксепшна?

Anatoly
06.08.2018
13:48:20
Какая разница какой
я не должен отлавливать всё, это плохой подход

Александр
06.08.2018
13:48:28
Например: монада Par. Или Software Transactional Memory (тоже может быть монадой, хе-хе). Или MVar-ы. Это все, в принципе, реализуемо в императивных языках с достаточной поддержкой ФП

Aidar
06.08.2018
13:48:38
Ты не должен отлавливать, ты должен сохранить консистентность

Другими способами

Например порядок поменять

Или написать гарды

Anatoly
06.08.2018
13:49:07
я не должен делать кордамп на любой чих

Shidfar
06.08.2018
13:49:17
/stat@combot

Combot
06.08.2018
13:49:17
combot.org/c/-1001031904034

Aidar
06.08.2018
13:49:25
Ты не должен бросать эксепшны на любой чих

Они не для этого

Google
Aidar
06.08.2018
13:49:44
Но все их может бросить

Anatoly
06.08.2018
13:49:53
Скажитете это nlohmann

Aidar
06.08.2018
13:50:05
Кто это?

Anatoly
06.08.2018
13:50:08
У него ошибка парсинга - исключительная ситуация

Ilia
06.08.2018
13:50:43
а если не знаешь, какой может броситься? И IDE не подскажет.
Я же тебе сказал, какой может бросится. std::exception& или ...

Anatoly
06.08.2018
13:51:11
Я же тебе сказал, какой может бросится. std::exception& или ...
Это тоже неправильно, это кривая архитектура, ожидать что угодно

Дед Пегас
06.08.2018
13:51:15
Ilia
06.08.2018
13:51:37
Aidar
06.08.2018
13:51:44
У него ошибка парсинга - исключительная ситуация
Ну это вроде даже валидно с точки зрения что-то пошло не так

Anatoly
06.08.2018
13:52:11
Ну это вроде даже валидно с точки зрения что-то пошло не так
Но это не исключительная ситуация для процесса, который использует либу для парсинга жсона

я должен отловить

Aidar
06.08.2018
13:52:46
Почему? Это метод построить дерево говна, вроде невалидный синтаксис это нестандартно

Ilia
06.08.2018
13:52:52
Это тоже неправильно, это кривая архитектура, ожидать что угодно
Да кто ж тебе сказал? Твой знакомый Java-программист?

Aidar
06.08.2018
13:53:45
Проверить валидность синтаксиса вот не должен кидать эксепшн очевидно

Опыт
В джаве?

Ilia
06.08.2018
13:54:00
Опыт
Выброси в зад свой Java-опыт...

Anatoly
06.08.2018
13:54:15
При чём здесь жаба?

Azoyan
06.08.2018
13:54:17
что вы такие дерзкие

Aidar
06.08.2018
13:54:27
<Шутка про эксепшн на закрытие файла>

Ilia
06.08.2018
13:54:46
Проверить валидность синтаксиса вот не должен кидать эксепшн очевидно
Правильно. Он должен возвращать bool. А вот если ты хочешь уже РАСПАРСИТЬ И РЕЗУЛЬТАТ ПОЛУЧИТЬ -- должен кидать исключение

Страница 2262 из 2477