Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.17.46] |
|
Страницы: (5) « Первая ... 2 3 [4] 5 все ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Было в переводе Добавлено Цитата applegame @ Я бы и в C++ их использовал как можно реже. Стремные операторы. Профита от них в наше время никакого. Запись короче В расте никто не запрещает писать так fn foo(a: i32, b: i32) { println!("{} {}", a, b); } fn main() { let mut a = 0; foo({a += 1; a}, {a += 1; a}); } |
Сообщ.
#47
,
|
|
|
Ну хотя бы нет путаницы с префиксным и постфиксным инкрементом/декрементом.
Цитата OpenGL @ Сомнительный профит в данном случае. Запись короче |
Сообщ.
#48
,
|
|
|
Цитата Славян @ А именно: уравнение не вычисляется, а решается. И решение - суть алгоритм, дающий что-то. Так что тут (в каком-то смысле) вообще иное, нежели вычислить "i=2, f(++i,++i)". Так вот есть решения долгие, а есть решения быстрые. И в процессе каждого из этих решений - вычисляется результат, совпадающий с другими решениями. Например, тебе дали ряд чисел: 1 + 2 + 3 + 4 + 5 +...N И сказали - а напиши ка нам программу считающую сумму этого ряда. ты можешь это написать по "феншую", как ты тут вещаешь: int sum = 0; for(int i = 0; i <= N; ++i) { sum += i; } А можешь записать по тупому, как ты тут вещаешь что типа не правильно: int sum = N*(N-1) / 2; А можешь вообще распаралеллить первый цикл, и считать в несколько потоков. И результат у тебя будет идентичный. И тут нет никаких намеков на то, что я могу сделать так или эдак. Это факт вытекающий из самой теории чисел. На этом основана по сути вся математика. А ты тут глаголишь - что вычислять нужно именно вот так и никак иначе. Где ты такое вычитал, ума не приложу. Математике вообще плевать как ты будешь считать, главное чтоб результат совпал и доказательство было. |
Сообщ.
#49
,
|
|
|
В Rust можно добиться примерно того же. Регламентируется ли там порядок вычисления аргументов - хз. Эх, продолжаю с ним эксперементировать, но никак не могу привыкнуть к синтаксическим и стилистическим особенностями. Вкусовщина, но, блин, таки важно, если писать на языке постоянно. Добавлено А можно немного ссылок привести? Цитата когда задание дано "вычислить", то изначально подразумевалось, что нужно просто записать понимание выражения, т.е. уйти от общепринятой записи к сугубо формальной. Пруф? Цитата И вот в этом виде и получается "3+4+5+6" надо понимать как "(((3+4)+5)+6)". Пруф? Цитата Именно!!! Предпочитает другой, а не тот прямой, равный определению! Потому и закрываем глазки и разрешаем. Но вычисляем всё равно не то, что дано. |
Сообщ.
#50
,
|
|
|
Лично я каких-то явных недостатков у операторов инкремента и декремента не вижу. Есть - ну и фиг с ними, не мешают. Сыр-бор то не из-за них сейчас. С тем же успехом вместо них мог бы быть вызов неких функций с сайд-эффектами - точно такое же неопределёное поведение было бы.
|
Сообщ.
#51
,
|
|
|
Цитата Wound @ На чём это "на этом" основана "по сути вся математика"??? И тут нет никаких намеков на то, что я могу сделать так или эдак. Это факт вытекающий из самой теории чисел. На этом основана по сути вся математика. Цитата Wound @ Я не говорю, что "никак иначе". Просто вычисления, проходящие "иначе", вычисляют другое выражение, формулу, вот и всё. А то, что результат совпадёт с первоначальной - ну так это, конечно, фишка выводов в математике! Просто люди частенько забивают на эту мелочь ("вычисляют другое выражение"), но всё же неплохо было бы сие видеть. А ты тут глаголишь - что вычислять нужно именно вот так и никак иначе. Цитата Wound @ Это следствие определений! Когда вы видите выражение "3+4+5", то можете, конечно, по-бабски эмоционально навычислять оное аки "(3+5)+4", но наука так не работает. Она сначала даёт железобетонное определение адекватным записям, определение того, что они означают (порядок и алгоритм расчёта), доказательства эквивалентности других способов подсчёта, и только потом уже люди решают как они поступят при подсчёте. Но правило одно! По́мните это, и будет немножко понятнее/очевиднее как быть в таком-то необычном случае (аки f(++i,++i)). Где ты такое вычитал, ума не приложу. Цитата D_KEY @ Не, я ж пишу по памяти/наученому, а не глядя куда-то на страничку в сети, так что ссылками не владею, увы и ах. А можно немного ссылок привести? |
Сообщ.
#52
,
|
|
|
Цитата Славян @ Это следствие определений! Когда вы видите выражение "3+4+5", то можете, конечно, по-бабски эмоционально навычислять оное аки "(3+5)+4", но наука так не работает. Она сначала даёт железобетонное определение адекватным записям, определение того, что они означают (порядок и алгоритм расчёта), доказательства эквивалентности других способов подсчёта, и только потом уже люди решают как они поступят при подсчёте. Так вот, эвивалентность записей «3+4+5» и «(3+5)+4» доказана наукой, и все, кому оно надо, этим пользуются. Видимо, кроме тебя. |
Сообщ.
#53
,
|
|
|
Эх, korvin, korvin... Услышали звон, да не знаете... Суть же разговора не про эту запись (сложение чисел), а про запись f(++i,++i).
Добавлено Цитата korvin @ Ну, кстати говоря, сказанное вами - ложь, ибо в науке такое не утверждается. Так вот, эквивалентность записей «3+4+5» и «(3+5)+4» доказана наукой А утверждается, что запись «3+4+5» будет означать запись «(3+5)+4», кою уже́ можно посчитать введёнными ранее определениями! Впрочем, вы (с высокой долей вероятности) хотели сказать, что "эквивалентность записей «3+(4+5)» и «(3+5)+4» доказана наукой". Так вот, даже это - тоже ложно. Ибо наукой утверждается, что "вычисления обеих записей дадут равный результат". И этим действительно многие пользуются. Ну и далее мы возвращаемся к разговору о записи f(++i,++i). Добавлено Цитата Славян @ Пардон, не уследил. Правильно так: "запись «3+4+5» будет означать запись «(3+4)+5», ...". «3+4+5» будет означать запись «(3+5)+4» |
Сообщ.
#54
,
|
|
|
Хуже тролля может быть только тролль-зануда
|
Сообщ.
#55
,
|
|
|
Цитата Славян @ На чём это "на этом" основана "по сути вся математика"??? Я же тебе ссылку кидал. Ты че вообще не читатель? На держи еще раз: Основные законы арифметики Цитата Про свойства этих операций сформулированы пять законов, которые считаются основными законами арифметики[17]: ... Цитата Славян @ Я не говорю, что "никак иначе". Просто вычисления, проходящие "иначе", вычисляют другое выражение, формулу, вот и всё. Какую другую? Расскажи пожалуйста в каком порядке нужно вычислять выражение: 3 + 2 ? С учетом того, что выше ты написал что в математике эта запись представляется как +(3, 2) Если я ее представлю как +(2 3) - это будет другое выражение? Или все тоже? То есть с твоей точки зрения есть разница между 3+2 и 2+3 ? Цитата Славян @ Просто люди частенько забивают на эту мелочь ("вычисляют другое выражение"), но всё же неплохо было бы сие видеть. Какое другое выражение? Любой ребенок знает что 3+2 это равносильно 2 + 3, ну кроме тебя естественно. Цитата Славян @ Это следствие определений! Когда вы видите выражение "3+4+5", то можете, конечно, по-бабски эмоционально навычислять оное аки "(3+5)+4", но наука так не работает. Пруф приведи как работает наука. А то ты тут озвучиваешь какую то ересь ничем не подкрепленную, просто свою отсебятину выдаешь за науку. Я вот допустим тебе не верю, хочу убедиться что твои слова правдивые, ты можешь это доказать ссылкой на научную литературу? Или это всего лишь твои личные фантазии? Цитата Славян @ Она сначала даёт железобетонное определение адекватным записям, определение того, что они означают (порядок и алгоритм расчёта), доказательства эквивалентности других способов подсчёта Кто она? Цитата Славян @ Но правило одно! По́мните это, и будет немножко понятнее/очевиднее как быть в таком-то необычном случае (аки f(++i,++i)). Где про это правило можно почитать? Ниразу не встречал такого бреда. Наоборот на математике рассказывали что разные задачи можно и нужно решать разными способами, и по всюду приведенные тобою правила нарушаются, сокращаются целые выражения, перестанавливаются местами переменные и т.д. и т.п. Ты чушь какую то несешь ИМХО. |
Сообщ.
#56
,
|
|
|
Можно не спорить, ибо пруфов нет, какая-то отсебятина. Не понятно на чем основана. Конечно, неприятно, что такой по сути антинаучный подход выдаётся за науку. Но да фиг с ним
|
Сообщ.
#57
,
|
|
|
Цитата Wound @ Конечно другое! Просто свойства кольца целых чисел таковы, что значения выражений совпадут!С учетом того, что выше ты написал что в математике эта запись представляется как +(3, 2) Если я ее представлю как +(2 3) - это будет другое выражение? Или все тоже? Цитата Wound @ Меж выражениями разница огромна, меж значениями оных разница нулевая. Ваш кэп. То есть с твоей точки зрения есть разница между 3+2 и 2+3 ? Цитата Wound @ Значения равносильны, но не сами выражения. Сколько ж повторять то!!? Какое другое выражение? Любой ребенок знает что 3+2 это равносильно 2 + 3, ну кроме тебя естественно. Цитата Wound @ Ну откройте определение плюсика, увидите, что это бинарное отношение, с определёнными свойствами, а потому запись 3+4+5 лишена смысла в своём начальном определении плюсика. Однако далее, раскрывается коммутативность, ассоциативность и прочие детали, кои показывают=доказывают одинаковость выражений (3+4)+5 и 3+(4+5), что указывает на то, что запись "3+4+5" будем читать любым способом, коли дают одинаковый результат оба варианта.Я вот допустим тебе не верю, хочу убедиться что твои слова правдивые, ты можешь это доказать ссылкой на научную литературу? Или это всего лишь твои личные фантазии? Цитата Wound @ Наука.Кто она? Цитата Wound @ Там, где с азов, с определений натуральных чисел в теории множеств, дают определение бинарного отношения 'сложение', очевидно. Где про это правило можно почитать? Цитата Wound @ Эмоции... Печально, но для прогеров, коим вы, возможно, являетесь, допустимо. Ты чушь какую то несешь ИМХО. |
Сообщ.
#58
,
|
|
|
Славян, в математике запись 3+4+5 означает то же самое, что и 5+4+3, или 5+3+4, или 3+2+4-2+5.
С твоими ограничениями математика никому была бы не нужна. Кроме продавцов и покупателей в магазине. Возьми любую книгу с математическими выкладками и обнаружь, как её автор вовсю переставляет слагаемые в выражениях, приводит однородные члены, разбивает слагаемые на части, прибавляет/отнимает слагаемое (как 2 в последнем варианте), чтобы получить нужную ему формулу, часть которой можно как-нибудь преобразовать, чтобы получить совсем другую формулу. Вообще, в математике запись 3+4+5 означает сумму трёх указанных чисел без какого-либо ограничения порядка суммирования. Единственный случай, когда на порядок накладывают ограничение - это суммирование бесконечных рядов, не являющихся абсолютно сходящимися. Поскольку в этом случае изменение порядка суммирования меняет предел, к которому сходится его сумма. Ну и в какой-то мере это же ограничение присутствует в определении не сходящихся абсолютно несобственных интегралов (с бесконечными пределами). |
Сообщ.
#59
,
|
|
|
Цитата Славян @ Эх, korvin, korvin... Услышали звон, да не знаете... Суть же разговора не про эту запись (сложение чисел), а про запись f(++i,++i). Я-то тему с начала прочитал, и просто фейспалмил с каждого твоего поста. Цитата Славян @ Ну, кстати говоря, сказанное вами - ложь, ибо в науке такое не утверждается. А утверждается, что запись «3+4+5» будет означать запись «(3+5)+4», кою уже́ можно посчитать введёнными ранее определениями! Расскажи-ка, мистер словоблуд, в чём же разница между эквивалентностью и «будет означать». Приведи-ка научное определение термина «будет означать». Желательно со ссылкой на соответствующий научный труд. Цитата Славян @ Ну откройте определение плюсика, увидите, что это бинарное отношение, с определёнными свойствами А может ты просто процитируешь это «определение плюсика», с его определёнными свойствами? Добавлено Вопрос по теме: в чём разница между UB и unspecified? |
Сообщ.
#60
,
|
|
|
Цитата korvin @ Насколько я понимаю. UB - вообще неопределенный результат, например одно и тоже выражение может давать различный результат в зависимости от опций компилятора. Unspecified - стандарт не описывает как именно оно должно выполняться, но компилятор должен всегда выполнять код определенным образом, каким именно образом решают создатели компилятора. Вопрос по теме: в чём разница между UB и unspecified? |