Доброе! Я подозреваю, что тут мы оказываемся в пограничной зоне с ООП. Функция эквивалентности может быть определена для класса функции или класса объекта . Тогда всё просто. Иначе обобщение может превысить порог сложности для восприятия. К случаю, я призываю без крайней необходимости не поднимать порог вхождения в программирование на Рефале. Он и так достаточно усложнился, а изначально простота и доступность понимания были важными «фишками» языка. Или явно делить аудиторию: «Рефал для чайников» и «Рефал для яйцеголовых». Относительно «чистоты» функции и побочных эффектов в общем случае про функцию ничего нельзя сказать. Однако, можно проводить некоторый автоматический анализ и выявлять функции с устойчивыми этими свойствами на момент выполнения (то есть делить их на те, про которые можно такое утверждать и те, про которые нельзя ничего утверждать). Это касается как раз вычислений без остановки интерпретатора — одна из трудностей, что в течении активности программы функции могут меняться, причём кардинально. Таким образом, оптимизация должна освежаться на момент каждой конкретизации. У меня эта проблема висит нерешённая. >Среда, 19 мая 2021, 11:14 +03:00 от Александр Коновалов >a.v.konovalov87_AT_mail.ru <[email protected]>: > > >Написать, что если s . F и s . G равны, то < Eq (< s . F e . Arg >) (< s . >G e . Arg >)> будет равно True нельзя, т.к. в Рефале функции могут быть >нечистыми (представьте, что s . F ≡ s . G ≡ & Get , функция чтения файла, >тогда два последовательных вызова прочитают две разные строчки). Поэтому в >докладе пришлось привлекать астрономическое явление, а здесь говорить о >взаимозаменяемости исходников. С уважением, Александр Гусев [email protected]
Re[2]: В защиту ссылок в Рефале – Was: Рефал-семинар 17 мая 2021 в 10:30 в Zoom'e
Александр Гусев gusev_aleksandr_AT_mail . ru Wed, 19 May 2021 01:58:20 -0700
- В з... Andrei Klimov andrei_AT_klimov . net
