6 Programming *************
· Data types void, bool, int, real, pair, triple, string · Paths and guides Bezier curves · Pens Colors, line types, line widths, font sizes · Transforms Affine transforms · Frames and pictures Canvases for immediate and deferred drawing · Files Reading and writing your data · Variable initializers Initialize your variables · Structures Organize your data · Operators Arithmetic and logical operators · Implicit scaling Avoiding those ugly *s · Functions Traditional and high-order functions · Arrays Dynamic vectors · Casts Implicit and explicit casts · Import Importing external 'Asymptote' modules · Static Where to allocate your variable? Here is a short introductory example to the 'Asymptote' programming language that highlights the similarity of its control structures with those of C, C++, and Java: // This is a comment. // Declaration: Declare x to be a real variable; real x; // Assignment: Assign the real variable x the value 1. x=1.0; // Conditional: Test if x equals 1 or not. if(x == 1.0) { write("x equals 1.0"); } else { write("x is not equal to 1.0"); } // Loop: iterate 10 times for(int i=0; i < 10; ++i) { write(i); } 'Asymptote' supports 'while', 'do', 'break', and 'continue' statements just as in C/C++. It also supports the Java-style shorthand for iterating over all elements of an array: // Iterate over an array int[] array={1,1,2,3,5}; for(int k : array) { write(k); } In addition, it supports many features beyond the ones found in those languages.