I often find myself wanting to create quick in-memory tables in q for testing purposes. The usual way to create a table is by specifying lists of column names and values, or flipping a dictionary, as shown below:
([] name:`Alice`Bob`Charles;age:20 30 40;city:`London`Paris`Athens) // or, using a dictionary: flip `name`age`city!(`Alice`Bob`Charles;20 30 40;`London`Paris`Athens)
As you can see, it's quite difficult to visualise the table being created using this approach. That's why I sometimes prefer to create a table from a multi-line CSV string instead, using the 0: operator, as shown below:
("SIS";enlist",") 0:
"name,age,city
Alice,20,London
Bob,30,Paris
Charles,40,Athens
"
name age city
------------------
Alice 20 London
Bob 30 Paris
Charles 40 Athens
Note that you can also load from a CSV file:
("SIS";enlist",") 0: `$"/path/to/file.csv"
Related post:kdb+/q - Reading and Writing a CSV File