LCB API's

James Hale james at thehales.id.au
Tue Sep 1 02:07:39 EDT 2015


Have to agree with Mike on this.
I too find the LCB APIs confusing in having "names" of things that are not part of the syntax.
The fact that the example for the localdate doesn't actually include "local date" is even more confusing.

Just looking at some entries is see "ListIsList" which is an operator.
However in looking at the syntax the actual operator is "is" in the context 'listA' is 'listB' although the docs present this a "left is right".

I can only think that the names of the entries are derived in some way from the underlying meta card C function calls that are actually being used to provide the functionality. Great if your focus is LCB down to enabling functions in the engine, not so great if your focus is LCB and above.

For example. "StringBeginsWithString" seems obvious.
The actual operator according to the syntax is "begins with"
Looking at the "list.mlc" source file this function makes a call to "MCListEvalBeginsWith" so I can see where the LCB name is derived. 

As I said this makes sense if I was concerned with authoring .mlc source but not so much if my focus was writing LCB files.

Looking up "contains" one finds three entries.
"Source contains Needle", "Target contains Needle" and "Target contains Needle". Yes the last two read the same.
First point of confusion, what the ?*£? Is a "needle"?
Second point, in all three entries the actual operator is "contains", only the context varies.

Readability wise a single entry for "Contains" with the three cases described or three entries for contains perhaps of the form...
    contains {string}
    contains {byte}
    contains {list}

James








More information about the use-livecode mailing list