Node:Values and Variables,
Next:Definition,
Previous:Latent Typing,
Up:About Data
[Показать/скрыть оригинал] [Показать/скрыть перевод] [Переключить перевод и оригинал]
Scheme provides many data types that you can use to represent your data. Primitive types include characters, strings, numbers and procedures. Compound types, which allow a group of primitive and compound values to be stored together, include lists, pairs, vectors and multi-dimensional arrays. In addition, Guile allows applications to define their own data types, with the same status as the built-in standard Scheme types.
Scheme содержит много типов для представления данных. Простейшие типы состоят из символов, строк, чисел, процедур. Составные типы позволяют объединить простейшие и составные типы вместе, включая: списки, пары (pairs), веркторы (одномерные массивы), многомерные массивы. В дополнение Guile позволяет определить приложению свои типы данных, которые имеют равный статус с стандартными (встроенными) типами Scheme.
As a Scheme program runs, values of all types pop in and out of existence. Sometimes values are stored in variables, but more commonly they pass seamlessly from being the result of one computation to being one of the parameters for the next.
В процессе исполнения программы на Scheme, значния появляются и исчезают. Иногда они сохраняются в переменных, но чаще всего они незаметно появившись в процессе вычислений так же незаметно передаются в качестве аргумента следующему вычислению.
Consider an example. A string value is created because the interpreter reads in a literal string from your program's source code. Then a numeric value is created as the result of calculating the length of the string. A second numeric value is created by doubling the calculated length. Finally the program creates a list with two elements - the doubled length and the original string itself - and stores this list in a program variable.
Рассмотрим пример. Строка создаётся интерпретатором, читающим строки исходного текста программы. Затем длина строки превращается в числовое значение. Второе числовое значение получается удвоением первого. В итоге программа создаёт список из двух элементов - удвоенной длины и оригинальной строки, который сохранется в переменной внутри программы.
All of the values involved here - in fact, all values in Scheme - carry their type with them. In other words, every value "knows," at runtime, what kind of value it is. A number, a string, a list, whatever.
Все вышеупомянутые значения (на самом деле все значения в Scheme) сохраняют свой тип внутри себя. Другими словами, каждое значение "знает" свой тип в каждый момент времени. И числа, и строки, и списки, и все остальные типы.
A variable, on the other hand, has no fixed type. A variable -
x, say - is simply the name of a location - a box - in which
you can store any kind of Scheme value. So the same variable in a
program may hold a number at one moment, a list of procedures the next,
and later a pair of strings. The "type" of a variable - insofar as
the idea is meaningful at all - is simply the type of whatever value
the variable happens to be storing at a particular moment.
Переменные, при этом, не имеют фиксированного типа. Перменная (например, X), если можно так сказать,
название расположения, места, коробочки, где вы можете сохранять значение. Так что одна и та же переменная (одно и то же имя коробочки) в разное
время исполнения программы может указывать на разные типы значения. В один момент времени это число, в другой - список процедур, а чуть позже - пара строк.
"Тип" перменной таким образом является лишь типом значения, хранящимся в данный момент в этой перменной.
> > далее > >