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