refal-5-lambda icon indicating copy to clipboard operation
refal-5-lambda copied to clipboard

Библиотека reflib

Open Mazdaywik opened this issue 6 years ago • 0 comments

Дистрибутив классического Рефала-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 и стоит внедрить библиотеку.

Нужно будет уточнить форматы и семантику каждой из функций и решить, в каком объёме их реализовывать.

Mazdaywik avatar Oct 12 '18 14:10 Mazdaywik