В TI-BASIC, как я могу отобразить имя переменной, учитывая только переменную?

Я создаю функцию, которая отображает много переменных в формате Variable + Variable Name.

Define LibPub out(list)=
Func
Local X
for x,1,dim(list)
  list[x]->name // How can I get the variable name here?
  Disp name+list[x]
EndFor
Return 1
EndFunc

2 ответа

По заданному значению списка невозможно найти его имя.

Рассмотрим этот пример:

a:={1,2,3,4}
b:=a               ; this stores {1,2,3,4} in b
out(b)

Строка 1: сначала значение {1,2,3,4} создано. Затем переменная с именем a создан и его значение установлено в {1,2,3,4},

Строка 2: выражение a оценивается; результат {1,2,3,4}, Новая переменная с именем b создан, и его значение установлено в `{1,2,3,4}.

Строка 3: выражение b оценивается. Ссылка на переменную определяет, какое значение хранится в b, Результат {1,2,3,4}, Это значение затем передается в функцию out,

Функция out получает значение {1,2,3,4}, Учитывая значение, нет никакого способа узнать, действительно ли значение было сохранено в переменной. Здесь значение хранится в обоих a а также b,

Однако мы также можем посмотреть на out({1,1,1,1}+{0,2,3,4}),

Система оценит {1,1,1,1}+{0,2,3,4} и получить {1,2,3,4}, затем out называется. Значение out получил результат выражения, но эквивалентное значение хранится в a а также b, Это означает, что значения не имеют имени.

В общем: переменные имеют имя и значение. Значения не имеют имен.

Если вам нужно напечатать имя, то посмотрите на строки.

Это будет занимать много памяти, но вы можете сохранить строку имен переменных и разделить каждое имя на некоторое количество символов и получить подстроку на основе индекса переменной в списке, который вы хотите получить. Например, допустим, вы хотите получить доступ к нулевому индексу, затем вы берете подстроку, начинающуюся с (индекс переменной * длина имени переменной, indexofvariable * длина + длина +1). Строка будет выглядеть следующим образом: скажем, у вас есть переменные foo, bas, random, impetus, строка будет храниться примерно так: "foo bas random impetus "

Другие вопросы по тегам