Quote:
struct People {
int age = 16;
string name = "John Smith";
float height = 70; // this is in inches
Gender sex = MALE; // this is an enum
} Person;
but isn't this data as well?
Yes and no. Usually when someone says "code is data" in reference to lisp, they're talking about being able to modify code at compile-time. Most of the time, lisp macros, and thus "code is data", are used to allow for higher level modelling of data, which can also be acheived in languages which have rich data modelling capabilities. The other cases, such as implementing control structures or creating complex minilanguages, aren't particularly well-suited to simple data structures, and are usually better off being implemented some other way.