История изменений
Исправление soomrack, (текущая версия) :
Почему только неожиданный? Может быть и ожиданным эффектом, зависит от квалификации программиста.
В целом это определение (из стандарта) передает суть, но не обладает математической строгостью, поэтому могут быть разные толкования что мы называем непрямым следствием, а что нет. И как раз вот эти толкования сильно зависят от контекста. Является ли неявный вызов конструктора непрямым следствием, или неявное приведение типов, или еще много чего, или не является?
Если хочется математической строгости, то для этого есть понятие чистой функции, но это уже совсем другая область знаний, computer science и прикладное программирование связаны весьма слабо.
Если кто-то дает определение, то нужно чтобы оно, во-первых, было осмысленно, а не покрывало все сущее, как в этом примере из книги, а во-вторых, чтобы оно не противоречило существующим принятым основным понятиям, т.е. определение которое можно дать в книге, должно быть более узкоспециализированным по сравнению с определением из стандарта, т.е. как раз с конкретным толкованием, что мы подразумеваем под непрямым следствием. И безусловно, эта мысль (определение) должно быть сформулировано так, чтобы его можно было цитировать без значительных кусков контекста. В данной цитате ничего подобного нет, это выглядит как безграмотная попытка дать определение чистой функции для реальной среды, вне математической абстрации, и, судя по комментариям, это главный лейтмотив книги – адаптация абстракции к реальному программированию, а в итоге получается какая-то полухрень (в том, что в этом треде было процитировано).
Исходная версия soomrack, :
Почему только неожиданный? Может быть и ожиданным эффектом, зависит от квалификации программиста.
В целом это определение (из стандарта) передает суть, но не обладает математической строгостью, поэтому могут быть разные толкования что мы называем непрямым следствием, а что нет. И как раз вот эти толкования сильно зависят от контекста. Является ли неявный вызов конструктора непрямым следствием, или неявное приведение типов, или еще много чего, или не является?
Если хочется математической строгости, то для этого есть понятие чистой функции, но это уже совсем другая область знаний, computer science и промышленное программирование связаны весьма слабо.
Если кто-то дает определение, то нужно чтобы оно, во-первых, было осмысленно, а не покрывало все сущее, как в этом примере из книги, а во-вторых, чтобы оно не противоречило существующим принятым основным понятиям, т.е. определение которое можно дать в книге, должно быть более узкоспециализированным по сравнению с определением из стандарта, т.е. как раз с конкретным толкованием, что мы подразумеваем под непрямым следствием. И безусловно, эта мысль (определение) должно быть сформулировано так, чтобы его можно было цитировать без значительных кусков контекста. В данной цитате ничего подобного нет, это выглядит как безграмотная попытка дать определение чистой функции для реальной среды, вне математической абстрации, и, судя по комментариям, это главный лейтмотив книги – адаптация абстракции к реальному программированию, а в итоге получается какая-то полухрень (в том, что в этом треде было процитировано).