Stanislav
Stanislav
отчасти точнее
Stanislav
если целит на вин10 то на половину нужная
Andrei
Демка симпатишная.
Stanislav
они там в vt100 смогли
Stanislav
поэтому все коды работают
Stanislav
надо только для своего приложения вызывать одну функцию включающую это
Stanislav
https://github.com/agauniyal/rang/blob/master/include/rang.hpp#L180 тут видимо пытались, но не дотянули
Stanislav
Stanislav
пруфцы
Berkus
Почему все так любят функциональные языки?(
не все, но функциональную композицию удобнее писать отлаживать и тестировать
Крылатый
+
Крылатый
И расщирять!
Alexey
В большом проекте инстанцирование сущностей значительно повышает его "понятность"
Berkus
поясни
Berkus
вот нам нужно получить через REST api CSV и выдать его в виде JSON - какие сущности нужно инстанциировать для понятности?
Berkus
так, и что с ней делать
Alexey
Ну в данной задаче ничего
Berkus
ну то есть я могу написать fetch . csvToJson . validateSchema mySchema . output с этой инстанциированной моделью, а могу не писать, mySchema будет функцией возвращающей нужную модель
Berkus
окей, какая есть задача в которой глобальная инстанциация какой-то конкретной json схемы нам помогает?
Alexey
Предположим к нам приходит json. Нам его нужно распарсить, записать в базу данных, проделать с полученными данными ещё какие-то манипуляции. На мой взгляд, удобнее для для всех этих манипуляций представлять json-файл в качестве объекта со списком полей и методов для обработки этих полей.
Alexey
*парсить json файл в объект
Berkus
ок, и что мы тут инстанциируем?
Berkus
и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?
Крылатый
А чо за методы у json-а могут быть? Чо там обрабатывать?
Крылатый
и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?
Полагаю, то, что засунуто в одельное «пространство имён»
Крылатый
Хотя есть же тайпклассы.
Alexey
и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?
Читабельность кода в случае Json.calculatesmth() выше, на мой взгляд
Berkus
если тебе захочется просто посчитать price range то придется инстанциировать данные в JSON объект? возможно это и сделает что-то "понятней", но точно не связь цен с джсоном
Berkus
если мы парсим json по схеме, то нам нужен в итоге финальный датакласс со всеми данными, в удобном виде, а не как оно в джсоне пришло
Berkus
в частности prices может быть уже list<Price> например
absolute magic
народ, оффтопну) кто какие облака юзает?
Berkus
(и да, Price может быть в джсоне не флоатом а строкой со значением в центах и видом валюты, если это нормальные люди писали)
Alexey
Да, разумней писать сразу финальный датакласс со всей логикой.
Sergey
Почему все так любят функциональные языки?(
прямо вот "любят" их только студенты и законченные гики. но писать в функциональном стиле - очень полезно, и красиво.
Anonymous
Привет всем Где могу скачать c++ builder🤗
Anonymous
можешь линк дать?
Berkus
google.com
Anonymous
google.com
Сказали что сpp builder стоит 6000$ это правда?
Крылатый
Думаю, если влепить больше матана в систему типов языка, можно много профита наоптимизировать.
Крылатый
Го не убийца C++.
Крылатый
Далеко не факт.
Ну почему же?
Dr. Friedrich
Ну почему же?
Потому что не всё в матане практично и может потенциально приводить к каким-то оптимизациям.
Крылатый
Если выражение можно вычислить на этапе компиляции и сократить, то профит, думаю, возможен.
Dr. Friedrich
Засунул ты в язык нетипизированное лямбда-счисление — и давай потом, оптимизируй.
Крылатый
Не всё, но таки упростить реально.
🐙 Antony
Я раньше приводил пример https://en.wikipedia.org/wiki/Expression_templates
Это не похоже на что-то, чего нет в С++. Чем ваш оптимизатор лучше тех что в Clang/GCC? Какую такую информацию доносит язык до бэкенда, что бэкенд может генерировать лучший код?
Dr. Friedrich
Если выражение можно вычислить на этапе компиляции и сократить, то профит, думаю, возможен.
Дело в том, что это не имеет ничего общего с "влепить побольше матана" :) Матан нужен не абы какой, а правильный.
Matway
Это не похоже на что-то, чего нет в С++. Чем ваш оптимизатор лучше тех что в Clang/GCC? Какую такую информацию доносит язык до бэкенда, что бэкенд может генерировать лучший код?
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.
Anonymous
ок
Dr. Friedrich
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.
> в отличие от любого плюсового компилятора > может сам построить высокоуровневую оптимизацию Утверждения, которым не помешали бы доказательства.
🐙 Antony
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.
Это делают все современные компиляторы С++, см constexpr. так в чём ваша killer feature? желательно на конкретном примере
Dr. Friedrich
Ну то есть конкретный пример кода, который некие компиляторы C++ не оптимизируют, а ваш компилятор/язык/платформа — оптимизирует.
Dr. Friedrich
Если будет пример с разбором — это хороший, годный, предметный разговор.
🐙 Antony
+1
Matway
> в отличие от любого плюсового компилятора > может сам построить высокоуровневую оптимизацию Утверждения, которым не помешали бы доказательства.
Законно. Смягчу утверждение - когда я последний раз (2015) проверял всю линейку имеющихся у меня компиляторов (ICC, GCC, VC, CLANG) - ничего подобного и близко не было. И, если честно, я не знаю, как это возможно сделать в плюсах. По второй части - есть релевантный чат. Доказательств стоит ожидать там.
🐙 Antony
Ну хоть ссылку дайте на какой-то конкретный пример? А то мне хочется вам поверить, но не получается
Arseny
https://t.me/NewLanguage_temporary
Arseny
Кому интересны примеры кода, апдейты - приглашаются в онтопик чат, не засоряйте плюсовую тему.
Constantine
или там, shared_ptr<const Smth> для shared_ptr'а на константный объект
давно хотел написать template <T> using immutable_ptr<T> = std::shared_ptr<const T>;
Constantine
и template <T> immutable_ptr<T> make_immutable(std::unique_ptr<T>);
Constantine
все никак руки не доходят
Крылатый
засунул ты язык в лямбда-исчисление...
Типизированное лямбда-исчисление!
Matway
Ну хоть ссылку дайте на какой-то конкретный пример? А то мне хочется вам поверить, но не получается
По первой части "доказательства": Берём код отсюда http://ideone.com/poYKpQ Загоняем в https://godbolt.org/ Делаем -O3, переключаем компиляторы и видим, что оптимизировать цикл никто не догадался. По второй части - в релевантный чат.
Constantine
хм...
Constantine
компилятор очень часто что-то не оптимизирует потому, что не уверен, что после оптимизации все пойдет так
Constantine
в данном случае нужны какие-то хитрые эвристики отсутствия side-effect для всего и вся, что не очевидно
Matway
компилятор очень часто что-то не оптимизирует потому, что не уверен, что после оптимизации все пойдет так
Это не тот случай. Это ситуация, когда высокоуровневая оптимизация (очень важная, между прочим), просто слишком сложна на том уровне, на котором её делают оптимизаторы плюсов.