Доброе!
 
Я подозреваю, что тут мы оказываемся в пограничной зоне с ООП. Функция 
эквивалентности может быть определена для  класса функции или  класса объекта . 
Тогда всё просто. Иначе обобщение может превысить порог сложности для 
восприятия.
 
К случаю, я призываю без крайней необходимости не поднимать порог вхождения в 
программирование на Рефале. Он и так достаточно усложнился, а изначально 
простота и доступность понимания были важными «фишками» языка. Или явно делить 
аудиторию: «Рефал для чайников»  и «Рефал для яйцеголовых».
 
Относительно «чистоты» функции и побочных эффектов в общем случае про функцию 
ничего нельзя сказать. Однако, можно проводить некоторый автоматический анализ 
и выявлять функции с устойчивыми этими свойствами на момент выполнения (то есть 
делить их на те, про которые можно такое утверждать и те, про которые нельзя 
ничего утверждать). Это касается как раз вычислений без остановки 
интерпретатора — одна из трудностей, что в течении активности программы функции 
могут меняться, причём кардинально. Таким образом, оптимизация должна 
освежаться на момент каждой конкретизации. У меня эта проблема висит нерешённая.
  
>Среда, 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]
 
  • В з... Andrei Klimov andrei_AT_klimov . net
    • ... Александр Гусев gusev_aleksandr_AT_mail . ru
      • ... Andrei Klimov andrei_AT_klimov . net
      • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... Александр Гусев gusev_aleksandr_AT_mail . ru
          • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
    • ... Boyko Bantchev boykobb_AT_gmail . com

Ответить