On 2015-10-27 10:22, Monte Goulding wrote:
On 27 Oct 2015, at 8:02 pm, Mark Waddingham <m...@livecode.com> wrote:

Note that in all three 'operator' cases, you can also have expressions in-between the tokens:
    <Expression> 'is' 'between' <Expression> 'and' <Expression>

Out of interest if I implement the above syntax but only for
expressions that evaluate to a number can someone else implement it
for expressions that evaluate to strings or some other thing. Can the
be used together by some other user that doesn’t care about the
implementation detail?

There are two ways to interpret your question...

Option (1):
Person A: x OP y => EvalOP(in x as integer, in y as integer) returns array Person B: x OP y => EvalOP(in x as string, in y as string) returns boolean

Option (2):
Person A: x OP y => EvalOP(in x as integer, in y as integer) returns integer Person B: x OP y => EvalOP(in x as integer, in y as integer) returns string

The difference here is that in Option (1), you can have differing return types as long as the types of the parameters are different. In Option (2), you can have differing return types even if the types of the parameters are the same.

Open Language definitely allows Option (1) - it is the basis of how 'specialization' of syntax can work for different argument types. This model is one where 'types flow downward' to work out how which variant to call.

Now, Option (2) is quite different - it means that the context of the use of an expression can be used to choose which form to call. This could work with the type-system in LiveCode Builder - I doubt it could be made to work effectively in LiveCode Script, too many ambiguities would arise (as the type required in a given context in LiveCode Script is often flexible).

That being said Option (2) is a proper superset of functionality for Option (1) so it is something we can explore at a later date. From all the work I have done up until now, Option (1) appears to be more than sufficient a model for currently existing LiveCode Script, and the purposes LiveCode Builder is currently being put to.

Warmest Regards,

Mark.

--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to