Это одна из программных археологов!
И прежде чем вы спросите, почему я вообще пытался заставить это работать, причина в том, что я просто могу - что я думаю, это очень хорошее оправдание!
Я обнаружил, что следующий код для процедуры компилируется с использованием VAX PASCAL (и работает как положено) ..
PROCEDURE format(number : INTEGER);
VAR
result : STRING(16);
BEGIN
:
:
writeln(result);
END.
Однако, если превратить это в функцию и попытаться вернуть результат в виде строки не будет компилироваться.
FUNCTION format(number : INTEGER) : STRING(16);
VAR
result : STRING(16);
BEGIN
:
:
format := result;
END.
Ошибка предполагает, что ошибка в определении типа для функции.
FUNCTION format(number : INTEGER) : STRING(16);
1
PASCAL-E-TYPCNTDISCR, Type can not be discriminated in this context
Вместо этого я попытался использовать типы VARYING и ARRAY STRING, но они тоже не работают. К сожалению, я не могу найти пример функции, которая возвращает STRING в SYS $ EXAMPLES или в руководствах, которые я нашел для битсейверов.
Надеюсь, у кого-то память лучше, чем у меня.
Спасибо