should I7 recognize "row of the table"?

I just generated about twenty compiler errors because I kept typing “row N of the table of blahdebloo” and Inform wanted “Row N in the table of blahdebloo.” If I’d been paying closer attention to the documentation this wouldn’t have happened – but isn’t “Row N of the table” more natural?

It is for me; I think it might be one of those American/UK English things. I usually have to double-check my table grammar.

This bugs me, too. As does the fact that the corresponding syntax is slightly different for lists. It’d be easy enough for an author to tweak–you’d just copy all of the relevant phrases from the Standard Rules and paste them into a new project/extension with tweaked syntax options; the new phrase definitions will override the SR phrases. However, it makes a lot of sense for the Standard Rules themselves to be more permissive in this instance.


I have no votes left, but maybe someone else can post a uservoice suggestion?

There is a serious lack of liquidity in uservoice votes. It reminds me of Paul Krugman’s baby-sitting co-op. But I will reclaim my votes from “bundle default library messages” to suggest this.

I’m also fresh out of votes, but another potential route might be extensions. In other words, if the desired behavior is extensible (as in this case), a packaged extension in the online library may also be noticed by the developers and eventually incorporated into the core library–particularly if a lot of folks are downloading and including said extension.

That said, this particularly request is pretty much a no-brainer and shouldn’t really need much if any voter attention on uservoice to be accepted.


Perhaps because “of” usually means “property of object”, meaning the computer would get confused if you replaced N with a property…?
I dunno.

Here’s a list of table- and list-related phrases that will standardize “of” alongside “in” (and “from”, in the case of tables): “of” is currently allowed inconsistently with lists, but not at all with tables. If you paste this anywhere you like in your source code (or a separate personal codebase extension), you won’t have to worry about being bitten by the “of” vs “in” thing again.

[code]To choose a/the/-- row (N - number) in/from/of (T - table name):
(- {-require-ctvs}ct_0 = {T}; ct_1 = {N}; -).

To choose a/the/-- row with (TC - K valued table column) of (w - value of kind K)
in/from/of (T - table name):
(- {-require-ctvs}ct_0 = {T}; ct_1 = TableRowCorr(ct_0, {TC}, {w}); -).

To choose a/the/-- blank row in/from/of (T - table name):
(- {-require-ctvs}ct_0 = {T}; ct_1 = TableBlankRow(ct_0); -).

To choose a/the/-- random row in/from/of (T - table name):
(- {-require-ctvs}ct_0 = {T}; ct_1 = TableRandomRow(ct_0); -).

To decide which number is number of rows in/from/of (T - table name)
(documented at ph_numrows):
(- TableRows({T}) -).

To decide which number is number of blank rows in/from/of (T - table name)
(documented at ph_numblank):
(- TableBlankRows({T}) -).

To decide which number is number of filled rows in/from/of (T - table name):
(- TableFilledRows({T}) -).

To blank out the whole (TC - table column) in/from/of (T - table name):
(- TableBlankOutColumn({T}, {TC}); -).

To add (new entry - K) at entry (E - number) in/of (L - list of values of kind K), if absent:
(- LIST_OF_TY_InsertItem({-pointer-to:L}, {new entry}, 1, {E}, {phrase options}); -).

To add (LX - list of Ks) at entry (E - number) in/of (L - list of values of kind K):
(- LIST_OF_TY_AppendList({-pointer-to:L}, {-pointer-to:LX}, 1, {E}, 0); -).[/code]