bmstu-iu9 / bmstu-iu9/refal-5-lambda

Библиотека reflib

Open
#179 0 comments 0 reactions 1 assignee Claimed by @Mazdaywik View on GitHub
task
Dominant language
C++
Stars
97
Forks
40
PR merge metrics
No merged PRs in 30d

Description

Дистрибутив классического Рефала-5 поставляется с библиотекой `reflib.ref`, которая содержит следующие функции (цитирую комментарий из заголовка):

```
* This file, REFLIB.REF, includes Refal definitions of:
*
* Pair pairs '(' and ')' into structure brackets
* PairArg pairs '(' and ')' into structure brackets from
* Input inputs Refal expressions, program style code
* InputArg inputs Refal expressions, program style code from
* 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` и стоит внедрить библиотеку.

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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.