refal-5-lambda
refal-5-lambda copied to clipboard
Библиотека reflib
Дистрибутив классического Рефала-5 поставляется с библиотекой reflib.ref
, которая содержит следующие функции (цитирую комментарий из заголовка):
* This file, REFLIB.REF, includes Refal definitions of:
*
* Pair pairs '(' and ')' into structure brackets
* PairArg pairs '(' and ')' into structure brackets from <Arg s.number>
* Input inputs Refal expressions, program style code
* InputArg inputs Refal expressions, program style code from <Arg s.number>
* Xxout outputs in expression-exchange (XX) code
* Xxinr inputs in XX code, Refal definition
* Xxin inputs in XX code calling a system function
* Pprout pretty print of expressions, empty result
На практике, на мой взгляд, она мало когда применима, поэтому до сих пор не была реализована. Но реализовать её нужно по двум причинам.
- Во-первых, для большей совместимости с Рефалом-5.
- Во-вторых, она полезна для обучения программированию на Рефале. Рефал — язык символьных преобразований, наиболее интересные применения — преобразования синтаксических деревьев. Но эти деревья откуда-то надо брать. Хадкодить в программе не интересно, разрабатывать парсер — долго. Поэтому ради функции
Input
и стоит внедрить библиотеку.
Нужно будет уточнить форматы и семантику каждой из функций и решить, в каком объёме их реализовывать.