Цитата:
Сообщение от
Владимир Ситников
Как ловко жонглируем терминами "детерминированная функция без побочных эффектов" и "историей состояний его входов".
массив чисел и последовательность переданных чисел принципиально не сильно отличаются. Поэтому я считаю, что детерминированность в том смысле что я написал, можно считать детерминированностью.
Цитата:
На всякий случай, дам ссылку на Wikipedia про побочные эффекты:
что-то в приведенной вами цитате свалены детерминированность и побочные эффекты в кучу) Вероятно автор данной строчки написал её не разобравшись и уж точно, что он не процитировал её из учебной литературы)
Цитата:
Очевидно, TON/TOF/SR/BLINK и т.п. функциональные блоки хранят и изменяют состояние.
хранение и чтение внутреннего локального состояния самой функции не считаются побочным эффектом.
Цитата:
Операция "write to FB" так вообще один сплошной побочный эффект.
Операция "write to FB" является вариантом явной передачи в функцию аргумента. Она ничем не отличается от дополнительного входа, куда мы так-же передаем аргумент.
Цитата:
Вот те раз. А сетевые переменные не глобальные что-ли?
чем они глобальные? Из макросов их не прочитать.
Цитата:
Подразберитесь с теорией. Разумеется, из внутренних макросов менять внешние переменные нехорошо, но это (изменение внешних) не является необходимым критерием на "наличие побочных эффектов".
необходимым критерием побочного эффекта является выход который зависит не только от входящих аргументов, но и от чего-то еще внешнего.
Цитата:
Например, блок BLINK ничего не меняет, но это побочный эффект -- "обращение к источнику времени". Его вызываешь, и он возвращает разное.
Blink(n,m) всегда выдает 0 первые m миллисекунд и 1 последующие n и так далее. В смысле "выход есть развертка во времени", блинк - обычная чистая функция.
Итого, всё во что уперлись наши разногласия - это правомерно ли считать ли развертку во времени аргументом или результатом работы функции.
У нас в физике например, есть единое пространство-время и относительность одновременности. Это значит, что принципиальной разницы между разверткой в пространстве и во времени нет и посему мы вправе считать последовательность во времени частным случаем массива или списка)