Re: Refal for BESM-6


Subject: Re: Refal for BESM-6
From: Sergei M. Abramov (at home) (abram@botik.ru)
Date: Tue Feb 27 2001 - 18:51:47 MSK


>| > И еще такой простой вопрос: как на Рефале-5 пишется то, что на Рефале-2
>| > было
>| > * Отождествление справа налево, E2 не содержит пробелов
>| > (R) E1 ' ' E2 = (E1) E2
...
>В рефалах 6 и 5 нет отождествления справа (не то, чтобы это было принципиальное
>решение, но наверно, было отсечено как лишнее и не очень нужное).

Для полноты картины добавлю, что в Рефале Плюс реверсное отождествление ($r)
было реализовано.

И как мне кажется, такое решение (поддержать $r) является нелишним и очень
нужным. Принципиальным (в смысле "не могу поступиться ...").

Если мы позволяем "рекурсивные" (открытые) образцы, то мне не ясно, почему мы их
позволяем "левые" и не позволяем "правые". Не вижу мотивации: почему?

Еще поясню свою мысль.

Рефал тем и отличается от Лиспа (тем и богаче Лиспа), что в Рефале один из
конструкторов (одивание скобок) неассоциативный, а вот другой--конкатенация
термов и выражений--ассоциативный!

Как следствие, в Лиспе однозначно имеются только два селектора ("обратные
функции" к CONS-у) -- CAR/CDR (head/tail).

А в рефале много разных селекторов: однозначное снятие скобок, и куча различных
разбивок выражения на подвыражения.

Как из разнообразия разбивок набрать "принципиальный" конечный набор селекторов?

За счет ассоциативности конкатенации (здесь фигурные скобки задают порядок
выполнение конкатенаций) имеем:

(а) t1 {e2 t3} = {t1 e2} t3
(б) e1 {e2 e3} = {e1 e2} e3

Что за обратные к этому? Каковы селекторы к этим "конструкторам"?

(а1) отгрысть терм слева
        ==> допускается во всех рефалах;

(а2) отгрысть терм справа
        ==> допускается во всех рефалах;

(б1) открытая е-переменная слева, удлиняющаяся вправо
        ==> допускается во всех рефалах;

(б2) открытая е-переменная справа, удлиняющаяся влево
        ==> допускается только в Р-2 и Р Плюс

По мне, поддержка свободного гуляния по выражению в обеих направлениях -- вешь
принципиальная (в смысле отмежевания от Лиспа, например).

Сергей



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:58 MSD