Как мне реализовать массив строк?

Я попытался реализовать слово, которое производит строку из массива, когда ему задано число на складывать в Форте.

Моя первая наивная попытка была:

create myarray s" Alpha" , s" Beta" , s" Charlie" ,

Это было принято, но не сработало должным образом - myarray @ type выдает несогласованный вывод (вместо моего наивного ожидания, что он может напечатать "Alpha") .

При поиске в сети я обнаружил в документации Gforth , что строка, созданная с помощью s ", имеет ограниченное время жизни, что означает, что мой анзац с самого начала обречен на неудачу. с другой стороны, кажется, что даже массивы обычных объектов не стандартизированы в соответствии с разделом Массивы в Forth в руководстве Len's Forth Tutorial.

По-видимому, это нетривиальная проблема с Forth .В Интернете есть библиотеки, которые реализуют функции отсутствующих строк: FFL ( str module ) и String Functions by Bernd Paysan . Это хорошая отправная точка, хотя для перехода от нее к массиву строк все еще требуется работа.

Итак, как я могу реализовать слово, которое возвращает строку из заданного массива?

6
задан ruvim 7 May 2018 в 08:13
поделиться