Александр!

Эквивалентность меня интересует одна — равенство значений одноимённых 
переменных в образце. Т.е. какими свойствами должна обладать эта встроенная в 
язык проверка на равенство, чтобы не было логических противоречий. Есть две 
границы, за которые выходить нельзя. С одной стороны, копии всегда равны. С 
другой стороны, функции с разным поведением должны быть не равны. Последнее я 
пытался формализовать в слайде про фазы луны и в предыдущем письме. Но, похоже, 
я больше всё запутал, чем объяснил.

 

С уважением,
Александр Коновалов

 

From: Александр Гусев gusev_aleksandr_AT_mail.ru <refal@botik.ru> 
Sent: Wednesday, May 19, 2021 11:57 AM
To: refal@botik.ru
Subject: Re[2]: В защиту ссылок в Рефале – Was: Рефал-семинар 17 мая 2021 в 
10:30 в Zoom'e

 

Доброе!

 

Я подозреваю, что тут мы оказываемся в пограничной зоне с ООП. Функция 
эквивалентности может быть определена для класса функции или класса объекта. 
Тогда всё просто. Иначе обобщение может превысить порог сложности для 
восприятия.

 

К случаю, я призываю без крайней необходимости не поднимать порог вхождения в 
программирование на Рефале. Он и так достаточно усложнился, а изначально 
простота и доступность понимания были важными «фишками» языка. Или явно делить 
аудиторию: «Рефал для чайников»  и «Рефал для яйцеголовых».

 

Относительно «чистоты» функции и побочных эффектов в общем случае про функцию 
ничего нельзя сказать. Однако, можно проводить некоторый автоматический анализ 
и выявлять функции с устойчивыми этими свойствами на момент выполнения (то есть 
делить их на те, про которые можно такое утверждать и те, про которые нельзя 
ничего утверждать). Это касается как раз вычислений без остановки 
интерпретатора — одна из трудностей, что в течении активности программы функции 
могут меняться, причём кардинально. Таким образом, оптимизация должна 
освежаться на момент каждой конкретизации. У меня эта проблема висит нерешённая.
 

Среда, 19 мая 2021, 11:14 +03:00 от Александр Коновалов 
a.v.konovalov87_AT_mail.ru <refal@botik.ru <mailto:refal@botik.ru> >:
 

 

Написать, что если s.F и s.G равны, то <Eq (<s.F e.Arg>) (<s.G e.Arg>)> будет 
равно True нельзя, т.к. в Рефале функции могут быть нечистыми (представьте, что 
s.F ≡ s.G ≡ &Get, функция чтения файла, тогда два последовательных вызова 
прочитают две разные строчки). Поэтому в докладе пришлось привлекать 
астрономическое явление, а здесь говорить о взаимозаменяемости исходников.

 

 

С уважением,
Александр Гусев
gusev_aleksa...@mail.ru <mailto:gusev_aleksa...@mail.ru> 

 

  • В з... 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

Ответить