632:
1051:. Other array types (such as Pascal strings) provide a concatenation operator, which can be used together with slicing to achieve that effect and more. In some languages, assigning a value to an element of an array automatically extends the array, if necessary, to include that element. In other array types, a slice can be replaced by an array of different size, with subsequent elements being renumbered accordingly – as in Python's list assignment "
539:
513:, etc.. Such index values cannot be restricted to an interval, much less a fixed interval. So, these languages usually allow arbitrary new elements to be created at any time. This choice precludes the implementation of array types as array data structures. That is, those languages use array-like syntax to implement a more general
805:
array types, for which the minimum valid value for any index is 0. This choice is convenient for array implementation and address computations. With a language such as C, a pointer to the interior of any array can be defined that will symbolically act as a pseudo-array that accommodates negative
1007:
operation takes a subset of the elements of an array-typed entity (value or variable) and then assembles them as another array-typed entity, possibly with other indices. If array types are implemented as array structures, many useful slicing operations (such as selecting a sub-array, swapping
782:
or aborting the program when any index is out of its valid range. Compilers may allow these checks to be turned off to trade safety for speed. Other languages (like FORTRAN and C) trust the programmer and perform no checks. Good compilers may also analyze the program to determine the range of
837:
The relation between numbers appearing in an array declaration and the index of that array's last element also varies by language. In many languages (such as C), one should specify the number of elements contained in the array; whereas in others (such as Pascal and
1012:
of the structure. The possible slicings depend on the implementation details: for example, FORTRAN allows slicing off one column of a matrix variable, but not a row, and treat it as a vector; whereas C allow slicing off a row from a matrix, but not a column.
620:. Thus, an array of numbers with 5 rows and 4 columns, hence 20 elements, is said to have dimension 2 in computing contexts, but represents a matrix that is said to be 4×5-dimensional. Also, the computer science meaning of "rank" conflicts with the notion of
723:
Array data types are most often implemented as array structures: with the indices restricted to integer (or totally ordered) values, index ranges fixed at array creation time, and multilinear element addressing. This was the case in most
670:
This representation for multi-dimensional arrays is quite prevalent in C and C++ software. However, C and C++ will use a linear indexing formula for multi-dimensional arrays that are declared with compile time constant size, e.g. by
995:
operations with the performance characteristics discussed above. Vectors can be queried for their size and can be resized. Slower operations like inserting an element in the middle are also supported.
252:'s programming language Superplan (1949–1951) included multi-dimensional arrays. Rutishauser however although describing how a compiler for his language should be built, did not implement one.
214:
model with the basic operations and behavior of a typical array type in most languages – basically, a collection of elements that are selected by indices computed at run-time.
1028:(also called resizable, growable, or extensible): array variables whose index ranges may be expanded at any time after creation, without changing the values of its current elements.
821:
array types, whose minimum legal indices are chosen by the programmer. The relative merits of each choice have been the subject of heated debate. Zero-based indexing can avoid
744:. In some languages, however, array data types have the semantics of associative arrays, with indices of arbitrary type and dynamic element creation. This is the case in some
842:) one should specify the numeric value of the index of the last element. Needless to say, this distinction is immaterial in languages where the indices start at 1, such as
631:
976:
Elements of a newly created array may have undefined values (as in C), or may be defined to have a specific "default" value such as 0 or a null pointer (as in Java).
949:") to build values of that type. In some languages (such as C), a string is just an array of characters, or is handled in much the same way. Other languages, like
136:
of that type, which is an aggregate of eight elements, each being an integer variable identified by two indices. In the Pascal program, those elements are denoted
667:, where each row may have a different size – or, in general, where the valid range of each index depends on the values of all preceding indices.
961:
Some programming languages provide operations that return the size (number of elements) of a vector, or, more generally, range of each index of an array. In
647:
to arrays of one dimension less. A two-dimensional array, in particular, would be implemented as a vector of pointers to its rows. Thus an element in row
925:. These capabilities are also provided via standard extension libraries for other general purpose programming languages (such as the widely used
858:, where operations and functions defined for certain data types are implicitly extended to arrays of elements of those types. Thus one can write
796:
482:), and require that all elements have the same data type and storage size. Most of those languages also restrict each index to a finite
217:
Depending on the language, array types may overlap (or be identified with) other data types that describe aggregates of values, such as
973:
function, so programmers often have to declare separate variable to hold the size, and pass it to procedures as a separate parameter.
439:
The first axiom means that each element behaves like a variable. The second axiom means that elements with distinct indices behave as
1513:
1066:
An extensible array can be implemented as a fixed-size array, with a counter that records how many elements are actually in use. The
1241:
1275:
258:
Because of the importance of array structures for efficient computation, the earliest high-level programming languages, including
1884:
1518:
639:
Many languages support only one-dimensional arrays. In those languages, a multi-dimensional array is typically represented by an
497:
On the other hand, some programming languages provide more liberal array types, that allow indexing by arbitrary values, such as
116:
may use to define such types and declare array variables, and special notation for indexing array elements. For example, in the
1508:
1503:
1330:
1285:
1251:
725:
1491:
1392:
813:
array types, where each index starts at 1; this is the traditional convention in mathematics for matrices and mathematical
1199:
560:
171:
66:
1669:
1161:
616:
of the array type. (This nomenclature conflicts with the concept of dimension in linear algebra, which expresses the
586:
568:
1100:
78:
1642:
17:
1759:
1564:
1496:
1458:
564:
1086:
operation may re-allocate the underlying array with a larger size, and copy the old elements to the new area.
1945:
930:
1659:
1589:
1437:
918:
902:
893:
Languages providing array programming capabilities have proliferated since the innovations in this area of
779:
729:
644:
510:
182:
1016:
On the other hand, other slicing operations are possible when array types are implemented in other ways.
1008:
indices, or reversing the direction of the indices) can be performed very efficiently by manipulating the
1914:
1549:
1105:
950:
875:
784:
613:
506:
117:
62:
1349:
1537:
1110:
843:
753:
733:
471:
153:
617:
1847:
1799:
1711:
1689:
1684:
1612:
1478:
1432:
942:
906:
502:
255:
Assembly languages and low-level languages like BCPL generally have no syntactic support for arrays.
222:
167:
1721:
1385:
962:
898:
894:
749:
549:
58:
443:
variables, so that storing a value in one element does not affect the value of any other element.
1874:
1789:
1060:
553:
279:
1617:
1473:
1427:
737:
483:
1607:
1582:
1130:
1095:
522:
663:
in typical notation). This way of emulating multi-dimensional arrays allows the creation of
1409:
802:
463:
440:
226:
175:
82:
31:
1223:
Lukham, Suzuki (1979), "Verification of array, record, and pointer operations in Pascal".
635:
A two-dimensional array stored as a one-dimensional array of one-dimensional arrays (rows)
8:
1940:
1879:
1857:
1784:
1637:
1629:
1378:
745:
699:
operations, and have special syntax for indexing. Early languages used parentheses, e.g.
1862:
1842:
1794:
1769:
1554:
1523:
1345:
486:
of integers, that remains fixed throughout the lifetime of the array variable. In some
467:
197:
1749:
1679:
1654:
1468:
1463:
1326:
1281:
1247:
1195:
1157:
855:
839:
806:
indices. This works only because C does not check an index against bounds when used.
514:
249:
206:
1894:
1779:
1577:
822:
451:
218:
65:), each selected by one or more indices (identifying keys) that can be computed at
42:
1935:
1899:
1764:
1716:
1649:
1070:
operation merely increments the counter; until the whole array is used, when the
826:
775:
769:
479:
27:
Data type that represents an ordered collection of elements (values or variables)
30:
This article is about the abstract data type. For the byte-level structure, see
1852:
1674:
1664:
1572:
1365:
1120:
1115:
946:
883:
498:
93:, respectively. More generally, a multidimensional array type can be called a
1929:
1774:
1075:
1025:
1004:
712:
640:
163:
105:
711:, as in Algol 60 and Pascal (to distinguish from the use of parentheses for
1731:
1706:
1125:
1031:
For one-dimensional arrays, this facility may be provided as an operation "
664:
491:
446:
These axioms do not place any constraints on the set of valid index tuples
159:
1173:
1909:
1904:
1754:
1701:
1528:
1009:
914:
879:
625:
621:
238:
234:
211:
189:
474:
data types (or other types that can be interpreted as integers, such as
1814:
1809:
1726:
1694:
1599:
1542:
783:
possible values that the index may have, and this analysis may lead to
518:
230:
113:
170:
types mainly because they allow the element indices to be computed at
1889:
1867:
1824:
1819:
1486:
1442:
1401:
1055:= ", that inserts three new elements (10,20, and 30) before element "
193:
50:
538:
1804:
814:
487:
267:
152:. Special array types are often defined by the language's standard
1325:(2nd ed.). Englewood Cliffs, N.J: Prentice Hall. p. 24.
953:, may provide vastly different operations for strings and arrays.
330:): the array that results by setting the value of that element to
1074:
operation may be defined to fail. This is an implementation of a
922:
604:
The number of indices needed to specify an element is called the
259:
69:
during program execution. Such a collection is usually called an
1277:
Learn Java for
Android Development: Java 8 and Android 5 Edition
910:
98:
1370:
980:
966:
926:
757:
741:
624:, which is a generalization of the linear algebra concept of
490:
languages, in fact, the index ranges may have to be known at
462:
In order to effectively implement variables of such types as
339:
306:
263:
181:. Among other things, this feature allows a single iterative
35:
278:
An array data structure can be mathematically modeled as an
1422:
691:
Most programming languages that support arrays support the
475:
196:, the terms "array" and "array type" sometimes refer to an
185:
to process arbitrarily many elements of an array variable.
1366:
NIST's
Dictionary of Algorithms and Data Structures: Array
1156:. Addison-Wesley. 4th edition (1998), 5th edition (2001),
1417:
1063:, and the two concepts are synonymous in some languages.
85:, array types with one and two indices are often called
917:. They are a core facility in newer languages, such as
270:(1960), provided support for multi-dimensional arrays.
1047:
by one and then sets the value of the last element to
1225:
703:, as in FORTRAN; others choose square brackets, e.g.
104:
Language support for array types may include certain
817:. A few languages, such as Pascal and Lua, support
517:semantics, and must therefore be implemented by a
162:are also more common and easier to implement than
1307:Brian W. Kernighan and Dennis M. Ritchie (1988),
1927:
1321:Kernighan, Brian W.; Ritchie, Dennis M. (1988).
1320:
1194:. Springer. Paperback edition (2007) 184 pages,
1174:"Introduction to Tensors | TensorFlow Core"
1059:". Resizable arrays are conceptually similar to
774:Some languages (like Pascal and Modula) perform
450:, therefore this abstract model can be used for
108:array data types, some syntactic constructions (
756:, and of some array types provided by standard
301:): the data stored in the element of the array
1386:
338:These operations are required to satisfy the
1239:
956:
866:to add corresponding elements of two arrays
188:In more theoretical contexts, especially in
77:. By analogy with the mathematical concepts
1246:. Prentice Hall Professional. p. 303.
1240:Deitel, Harvey M.; Deitel, Paul J. (2005).
886:, and which of these is represented by the
874:. Usually these languages provide both the
797:Comparison of programming languages (array)
599:
567:. Unsourced material may be challenged and
1393:
1379:
936:
470:), many languages restrict the indices to
1166:
1148:
1146:
728:languages, and is still the case of most
587:Learn how and when to remove this message
1043:)" that increases the size of the array
801:Some languages, such as C, provide only
229:, but sometimes by other means, such as
97:, by analogy with the physical concept,
1273:
945:data type, with specialized notation ("
225:. Array types are often implemented by
124:, defines a new array data type called
14:
1928:
1143:
659:would be accessed by double indexing (
436:for which the operations are defined.
1374:
1184:
166:. Array types are distinguished from
686:
565:adding citations to reliable sources
532:
1082:type of Pascal. Alternatively, the
854:Some programming languages support
528:
192:and in the description of abstract
24:
1350:Why numbering should start at zero
983:a std::vector object supports the
941:Many languages provide a built-in
763:
630:
457:
273:
25:
1957:
1359:
1212:Concepts of Programming Languages
1154:Concepts of Programming Languages
1078:with a fixed capacity, as in the
897:. These are core capabilities of
876:element-by-element multiplication
34:. For other types of arrays, see
1101:Array database management system
849:
832:
537:
122:type MyTable = array of integer
53:that represents a collection of
1339:
790:
454:and other oddly-shaped arrays.
1400:
1314:
1301:
1274:Friesen, Jeff (5 March 2014).
1267:
1233:
1217:
1204:
718:
305:whose indices are the integer
13:
1:
1459:Arbitrary-precision or bignum
1214:. Cambridge University Press.
1192:PASCAL User Manual and Report
1190:K. Jensen and Niklaus Wirth,
1136:
890:operator varies by language.
809:Other languages provide only
730:systems programming languages
679:, instead of the traditional
643:, a one-dimensional array of
778:on every access, raising an
7:
1106:Bounds-checking elimination
1089:
1019:
785:bounds-checking elimination
118:Pascal programming language
10:
1962:
1323:The C programming language
1309:The C programming Language
1111:Delimiter-separated values
998:
969:arrays do not support the
794:
767:
244:
29:
1833:
1800:Strongly typed identifier
1742:
1628:
1598:
1563:
1451:
1408:
1152:Robert W. Sebesta (2001)
957:Array index range queries
899:domain-specific languages
600:Multi-dimensional arrays
132:then defines a variable
1875:Parametric polymorphism
1311:. Prentice-Hall, p. 81.
937:String types and arrays
921:and recent versions of
466:(with indexing done by
280:abstract data structure
110:array type constructors
1280:. Apress. p. 56.
636:
499:floating-point numbers
286:) with two operations
1131:Variable-length array
1096:Array access analysis
1024:Some languages allow
795:Further information:
634:
523:search data structure
227:array data structures
1946:Composite data types
561:improve this section
420:for any array state
32:Array data structure
1880:Primitive data type
1785:Recursive data type
1638:Algebraic data type
1514:Quadruple precision
1230:(2), 226–244.
746:scripting languages
452:triangular matrices
204:or may refer to an
174:, as in the Pascal
1843:Abstract data type
1524:Extended precision
1483:Reduced precision
1346:Edsger W. Dijkstra
1243:C# for Programmers
726:"third generation"
637:
468:pointer arithmetic
200:(ADT) also called
198:abstract data type
128:. The declaration
120:, the declaration
1923:
1922:
1655:Associative array
1519:Octuple precision
1332:978-0-13-110370-2
1287:978-1-4302-6455-2
1253:978-0-13-246591-5
878:and the standard
856:array programming
840:Visual Basic .NET
687:Indexing notation
618:shape of a matrix
597:
596:
589:
515:associative array
428:, and any tuples
250:Heinz Rutishauser
207:associative array
16:(Redirected from
1953:
1895:Type constructor
1780:Opaque data type
1712:Record or Struct
1509:Double precision
1504:Single precision
1395:
1388:
1381:
1372:
1371:
1353:
1343:
1337:
1336:
1318:
1312:
1305:
1299:
1298:
1296:
1294:
1271:
1265:
1264:
1262:
1260:
1237:
1231:
1221:
1215:
1208:
1202:
1188:
1182:
1181:
1170:
1164:
1150:
1085:
1081:
1073:
1069:
1034:
827:fencepost errors
710:
706:
702:
682:
678:
674:
626:rank of a matrix
592:
585:
581:
578:
572:
541:
533:
529:Language support
480:enumerated types
464:array structures
180:
151:
147:
143:
139:
135:
131:
127:
123:
43:computer science
21:
1961:
1960:
1956:
1955:
1954:
1952:
1951:
1950:
1926:
1925:
1924:
1919:
1900:Type conversion
1835:
1829:
1765:Enumerated type
1738:
1624:
1618:null-terminated
1594:
1559:
1447:
1404:
1399:
1362:
1357:
1356:
1344:
1340:
1333:
1319:
1315:
1306:
1302:
1292:
1290:
1288:
1272:
1268:
1258:
1256:
1254:
1238:
1234:
1222:
1218:
1210:John Mitchell,
1209:
1205:
1189:
1185:
1172:
1171:
1167:
1151:
1144:
1139:
1092:
1083:
1079:
1071:
1067:
1032:
1022:
1001:
959:
947:string literals
939:
852:
835:
799:
793:
776:bounds checking
772:
770:Bounds checking
766:
764:Bounds checking
721:
708:
704:
700:
689:
680:
676:
672:
602:
593:
582:
576:
573:
558:
542:
531:
460:
458:Implementations
276:
274:Abstract arrays
247:
178:
149:
145:
141:
137:
133:
129:
125:
121:
39:
28:
23:
22:
18:Array data type
15:
12:
11:
5:
1959:
1949:
1948:
1943:
1938:
1921:
1920:
1918:
1917:
1912:
1907:
1902:
1897:
1892:
1887:
1882:
1877:
1872:
1871:
1870:
1860:
1855:
1853:Data structure
1850:
1845:
1839:
1837:
1831:
1830:
1828:
1827:
1822:
1817:
1812:
1807:
1802:
1797:
1792:
1787:
1782:
1777:
1772:
1767:
1762:
1757:
1752:
1746:
1744:
1740:
1739:
1737:
1736:
1735:
1734:
1724:
1719:
1714:
1709:
1704:
1699:
1698:
1697:
1687:
1682:
1677:
1672:
1667:
1662:
1657:
1652:
1647:
1646:
1645:
1634:
1632:
1626:
1625:
1623:
1622:
1621:
1620:
1610:
1604:
1602:
1596:
1595:
1593:
1592:
1587:
1586:
1585:
1580:
1569:
1567:
1561:
1560:
1558:
1557:
1552:
1547:
1546:
1545:
1535:
1534:
1533:
1532:
1531:
1521:
1516:
1511:
1506:
1501:
1500:
1499:
1494:
1492:Half precision
1489:
1479:Floating point
1476:
1471:
1466:
1461:
1455:
1453:
1449:
1448:
1446:
1445:
1440:
1435:
1430:
1425:
1420:
1414:
1412:
1406:
1405:
1398:
1397:
1390:
1383:
1375:
1369:
1368:
1361:
1360:External links
1358:
1355:
1354:
1338:
1331:
1313:
1300:
1286:
1266:
1252:
1232:
1216:
1203:
1200:978-3540069508
1183:
1165:
1141:
1140:
1138:
1135:
1134:
1133:
1128:
1123:
1121:Parallel array
1118:
1116:Index checking
1113:
1108:
1103:
1098:
1091:
1088:
1026:dynamic arrays
1021:
1018:
1000:
997:
958:
955:
938:
935:
884:linear algebra
880:matrix product
851:
848:
834:
831:
792:
789:
768:Main article:
765:
762:
720:
717:
713:function calls
688:
685:
610:dimensionality
601:
598:
595:
594:
545:
543:
536:
530:
527:
521:or some other
459:
456:
418:
417:
397:) =
372:
368:) =
336:
335:
313:
284:abstract array
275:
272:
246:
243:
202:abstract array
164:dynamic arrays
130:var A: MyTable
71:array variable
26:
9:
6:
4:
3:
2:
1958:
1947:
1944:
1942:
1939:
1937:
1934:
1933:
1931:
1916:
1913:
1911:
1908:
1906:
1903:
1901:
1898:
1896:
1893:
1891:
1888:
1886:
1883:
1881:
1878:
1876:
1873:
1869:
1866:
1865:
1864:
1861:
1859:
1856:
1854:
1851:
1849:
1846:
1844:
1841:
1840:
1838:
1832:
1826:
1823:
1821:
1818:
1816:
1813:
1811:
1808:
1806:
1803:
1801:
1798:
1796:
1793:
1791:
1788:
1786:
1783:
1781:
1778:
1776:
1775:Function type
1773:
1771:
1768:
1766:
1763:
1761:
1758:
1756:
1753:
1751:
1748:
1747:
1745:
1741:
1733:
1730:
1729:
1728:
1725:
1723:
1720:
1718:
1715:
1713:
1710:
1708:
1705:
1703:
1700:
1696:
1693:
1692:
1691:
1688:
1686:
1683:
1681:
1678:
1676:
1673:
1671:
1668:
1666:
1663:
1661:
1658:
1656:
1653:
1651:
1648:
1644:
1641:
1640:
1639:
1636:
1635:
1633:
1631:
1627:
1619:
1616:
1615:
1614:
1611:
1609:
1606:
1605:
1603:
1601:
1597:
1591:
1588:
1584:
1581:
1579:
1576:
1575:
1574:
1571:
1570:
1568:
1566:
1562:
1556:
1553:
1551:
1548:
1544:
1541:
1540:
1539:
1536:
1530:
1527:
1526:
1525:
1522:
1520:
1517:
1515:
1512:
1510:
1507:
1505:
1502:
1498:
1495:
1493:
1490:
1488:
1485:
1484:
1482:
1481:
1480:
1477:
1475:
1472:
1470:
1467:
1465:
1462:
1460:
1457:
1456:
1454:
1450:
1444:
1441:
1439:
1436:
1434:
1431:
1429:
1426:
1424:
1421:
1419:
1416:
1415:
1413:
1411:
1410:Uninterpreted
1407:
1403:
1396:
1391:
1389:
1384:
1382:
1377:
1376:
1373:
1367:
1364:
1363:
1351:
1347:
1342:
1334:
1328:
1324:
1317:
1310:
1304:
1289:
1283:
1279:
1278:
1270:
1255:
1249:
1245:
1244:
1236:
1229:
1226:
1220:
1213:
1207:
1201:
1197:
1193:
1187:
1179:
1175:
1169:
1163:
1162:9780201385960
1159:
1155:
1149:
1147:
1142:
1132:
1129:
1127:
1124:
1122:
1119:
1117:
1114:
1112:
1109:
1107:
1104:
1102:
1099:
1097:
1094:
1093:
1087:
1077:
1076:dynamic array
1064:
1062:
1058:
1054:
1050:
1046:
1042:
1038:
1029:
1027:
1017:
1014:
1011:
1006:
1005:array slicing
996:
994:
990:
986:
982:
977:
974:
972:
968:
964:
954:
952:
948:
944:
934:
932:
928:
924:
920:
916:
912:
908:
904:
900:
896:
891:
889:
885:
881:
877:
873:
869:
865:
861:
857:
850:Array algebra
847:
845:
841:
833:Highest index
830:
828:
824:
820:
816:
812:
807:
804:
798:
788:
786:
781:
777:
771:
761:
759:
755:
751:
747:
743:
739:
735:
731:
727:
716:
714:
698:
694:
684:
668:
666:
665:jagged arrays
662:
658:
654:
650:
646:
642:
641:Iliffe vector
633:
629:
627:
623:
619:
615:
611:
607:
591:
588:
580:
570:
566:
562:
556:
555:
551:
546:This section
544:
540:
535:
534:
526:
524:
520:
516:
512:
508:
504:
500:
495:
493:
489:
485:
481:
477:
473:
469:
465:
455:
453:
449:
444:
442:
437:
435:
431:
427:
423:
416:
413: ≠
412:
408:
404:
400:
396:
392:
388:
384:
380:
376:
373:
371:
367:
363:
359:
355:
351:
347:
344:
343:
342:
341:
333:
329:
325:
321:
317:
314:
311:
308:
304:
300:
296:
292:
289:
288:
287:
285:
281:
271:
269:
265:
261:
256:
253:
251:
242:
240:
236:
232:
228:
224:
220:
215:
213:
209:
208:
203:
199:
195:
191:
186:
184:
177:
173:
169:
165:
161:
160:Dynamic lists
157:
155:
119:
115:
111:
107:
102:
100:
96:
92:
88:
84:
80:
76:
72:
68:
64:
60:
56:
52:
48:
44:
37:
33:
19:
1680:Intersection
1341:
1322:
1316:
1308:
1303:
1291:. Retrieved
1276:
1269:
1257:. Retrieved
1242:
1235:
1227:
1224:
1219:
1211:
1206:
1191:
1186:
1177:
1168:
1153:
1126:Sparse array
1065:
1056:
1052:
1048:
1044:
1040:
1036:
1030:
1023:
1015:
1002:
992:
988:
984:
978:
975:
970:
960:
940:
929:library for
892:
887:
871:
867:
863:
859:
853:
836:
818:
810:
808:
800:
791:Index origin
773:
722:
696:
692:
690:
669:
660:
656:
655:of an array
652:
648:
638:
609:
605:
603:
583:
574:
559:Please help
547:
496:
492:compile time
461:
447:
445:
438:
433:
429:
425:
424:, any value
421:
419:
414:
410:
406:
402:
398:
394:
390:
386:
382:
378:
374:
369:
365:
361:
357:
353:
349:
345:
337:
331:
327:
323:
319:
315:
309:
302:
298:
294:
290:
283:
277:
266:(1960), and
257:
254:
248:
239:search trees
235:linked lists
216:
212:mathematical
205:
201:
187:
158:
109:
103:
94:
90:
86:
74:
70:
54:
46:
40:
1910:Type theory
1905:Type system
1755:Bottom type
1702:Option type
1643:generalized
1529:Long double
1474:Fixed point
1010:dope vector
915:Mathematica
760:libraries.
719:Index types
651:and column
622:tensor rank
231:hash tables
190:type theory
179:A := A
112:) that the
95:tensor type
91:matrix type
87:vector type
75:array value
1941:Data types
1930:Categories
1815:Empty type
1810:Type class
1760:Collection
1717:Refinement
1695:metaobject
1543:signedness
1402:Data types
1178:TensorFlow
1137:References
823:off-by-one
803:zero-based
645:references
519:hash table
511:references
194:algorithms
176:assignment
114:programmer
1890:Subtyping
1885:Interface
1868:metaclass
1820:Unit type
1790:Semaphore
1770:Exception
1675:Inductive
1665:Dependent
1630:Composite
1608:Character
1590:Reference
1487:Minifloat
1443:Bit array
815:sequences
811:one-based
780:exception
606:dimension
548:does not
183:statement
154:libraries
63:variables
51:data type
1915:Variable
1805:Top type
1670:Equality
1578:physical
1555:Rational
1550:Interval
1497:bfloat16
1090:See also
1020:Resizing
901:such as
748:such as
732:such as
577:May 2009
488:compiled
484:interval
441:disjoint
268:Algol 60
262:(1957),
172:run time
106:built-in
67:run time
55:elements
1858:Generic
1834:Related
1750:Boolean
1707:Product
1583:virtual
1573:Address
1565:Pointer
1538:Integer
1469:Decimal
1464:Complex
1452:Numeric
999:Slicing
923:Fortran
819:n-based
681:int **A
569:removed
554:sources
507:objects
503:strings
472:integer
260:FORTRAN
245:History
223:strings
126:MyTable
1936:Arrays
1848:Boxing
1836:topics
1795:Stream
1732:tagged
1690:Object
1613:String
1329:
1293:22 May
1284:
1259:22 May
1250:
1198:
1160:
1084:append
1080:string
1072:append
1068:append
1033:append
993:append
991:, and
989:select
951:Pascal
943:string
931:Python
913:, and
911:Matlab
740:, and
701:A(i,j)
697:select
340:axioms
168:record
99:tensor
83:matrix
79:vector
59:values
1743:Other
1727:Union
1660:Class
1650:Array
1433:Tryte
1061:lists
985:store
927:NumPy
919:Julia
903:GAUSS
693:store
677:int A
673:int A
612:, or
476:bytes
409:) if
307:tuple
264:COBOL
237:, or
219:lists
148:, …,
49:is a
47:array
36:Array
1863:Kind
1825:Void
1685:List
1600:Text
1438:Word
1428:Trit
1423:Byte
1327:ISBN
1295:2024
1282:ISBN
1261:2024
1248:ISBN
1196:ISBN
1158:ISBN
971:size
965:and
870:and
752:and
695:and
614:rank
552:any
550:cite
478:and
282:(an
221:and
210:, a
89:and
81:and
1722:Set
1418:Bit
1348:, "
1003:An
981:C++
979:In
967:C++
933:).
907:IDL
895:APL
882:of
844:Lua
825:or
758:C++
754:Lua
750:Awk
742:C++
734:Ada
715:).
707:or
675:or
628:.)
563:by
399:get
393:),
379:set
375:get
364:),
350:set
346:get
316:set
291:get
73:or
61:or
41:In
1932::
1176:.
1145:^
987:,
909:,
905:,
846:.
829:.
787:.
736:,
683:.
608:,
525:.
509:,
505:,
501:,
494:.
432:,
405:,
389:,
360:,
297:,
241:.
233:,
156:.
144:,
140:,
101:.
45:,
1394:e
1387:t
1380:v
1352:"
1335:.
1297:.
1263:.
1228:1
1180:.
1057:A
1053:A
1049:x
1045:A
1041:x
1039:,
1037:A
1035:(
963:C
888:*
872:B
868:A
864:B
862:+
860:A
738:C
709:A
705:A
661:A
657:A
653:j
649:i
590:)
584:(
579:)
575:(
571:.
557:.
448:I
434:J
430:I
426:V
422:A
415:J
411:I
407:J
403:A
401:(
395:J
391:V
387:I
385:,
383:A
381:(
377:(
370:V
366:I
362:V
358:I
356:,
354:A
352:(
348:(
334:.
332:V
328:V
326:,
324:I
322:,
320:A
318:(
312:.
310:I
303:A
299:I
295:A
293:(
150:A
146:A
142:A
138:A
134:A
57:(
38:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.