Добрый день, Сергей Михайлович!

«то оба терма-скобок делаются „такими же“  — в смысле указывают на одно место и 
имеют равную длину.»

И таким образом ещё и может экономиться память: вторая ссылка на равный 
скобочный терм может оказаться ненужной и удалиться как мусор.


Ещё можно показать, что эти две функции реверса списка эквивалентны:

nrev [] = []
nrev x:xs = (nrev xs) ++ [x]


arev xs = arevLoop xs []
arevLoop [] acc = acc
arevLoop x:xs acc = arevLoop xs (x:acc)

Первая имеет квадратичную сложность, вторая — линейную.

Не уверен, можно ли одну привести к другой эквивалентными преобразованиями 
Бёрстола и Дарлингтона, но (а) можно их эквивалентность доказать на Идрисе 
(https://habr.com/ru/post/463957/), (б) Гамильтон каким-то образом выводил 
второе из первого при помощи своей туманной «дистилляции».


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

-----Original Message-----
From: Sergei M. Abramov abram_AT_botik.ru [mailto:refal@botik.ru] 
Sent: Friday, April 10, 2020 12:31 PM
To: Василий Стеллецкий swi_AT_cnshb.ru <refal@botik.ru>
Subject: Re: Сортировка в Рефале-5

День добрый, всем!

> Вряд ли такое возможно, Александр!
> Интуиция подсказывает, что при "элементарных" преобразованиях порядок 
> сложности алгоритма не должен измениться... --

Колапсирующие джунгли порядок меняют, и понятно почему.

Ну, и ручками, мемоизация (а именно ее колапс поднимает) позволяет изменить 
порядок.


PS.  К слову, в рефале плюс встроены колапсирующие джунгли над
данными: если понадобилось сравнить два терма-скобок (а скобки у нас
подвешенны) и они оказались равными, то оба терма-скобок делаются "такими же" 
-- в смысле указывают на одно место и имеют равную длину.

То есть, термы становятся не просто "равный", а "тот же ссамый".

С уважением,

Абрамов С.М.
ab...@botik.ru
мобильный: +7(903)2928308

  • Сор... Александр Коновалов a . v . konovalov87_AT_mail . ru
    • ... Sergei M. Abramov
      • ... Sergei M. Abramov
      • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... Sergei M. Abramov
          • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
            • ... Sergei M. Abramov

Ответить