>> function f1( a, b, *args )
>> {
>> for (var i = 0; i < args.length; i++) {
>> a[i](a, b);
>> }
>> }
>>
>
> Where did I see this syntax? I like this one, so let's stick with
> it. I eliminates the need to assign ... to a variable, and it avoid
> implicit, hidden variables like 'arguments'.
At least Python supports it, and yes, I like it too.
>>>>I think people might find identifiers such as 'a-b' confusing (I know
>>>>it's a common naming convention in Scheme), so I would prefer 'a_b' or 'aB'.
>>>>
>>>>
>>>Since the flow language is tightly integrated with the Scheme engine
>>>underneath and with the Java language implementation, it should be
>>>possible to invoke Scheme functions, as well as Java methods. Since
>>>Scheme function names are often named using embedded minus signs, the
>>>language should provide this feature.
>>>
>>Uh, that's a good point, but perhaps our 'layer' of 'built-in' functions
>>should use 'a_b' or 'aB'. As the flow language is not Scheme, we
>>probably shouldn't allow direct access to Scheme functions, anyway. If
>>some users really want to do that, they should use Scheme directly.
>>
>
> Hm, but how about the fact that we do allow access to the Java
> language underneath?
That's a good point, but there's a slight semantic difference as the
flow language is translated to Scheme. The Java bindings provide, in a
way, what browser extensions or LiveConnect provide to ECMAScript. But
more importantly, the Java integration is probably inevitable, 'a-b'
identifiers are not :)
> But you're right, there anyways too many differences between a
> function in our language and normal functions in Scheme. And also I
> have in Scheme right now is a 'function' macro that implements the
> named arguments semantic. It can be simply extended to register a
> Scheme function to be access from the flow language.
OK, that's good.
> OK then, I'll get rid of some of the special characters in
> variables. I'd still like to have things like ? and ! available
> though, as they make for more readable names.
Hm, it might be okay for built-in type predicates, but I'm not sure that
Scheme naming conventions 'rhyme' with the flow language syntax.
(string? a)
(typeof(a) == "string")
(good?(a))
(isGood(a))
myProc!(a);
Also, as you know, '!' is commonly used to denote negation, so it might
cause some confusion.
>> > Placing spaces around operators
>>
>>>also makes for more readable programs ;-)
>>>
>>Sure, but some will forget (well, they should read the docs anyway :)
>>
>
> OK, I'll remove them.
It would be fine by me to issue a warning on 'a-b', i.e. to require
'a - b', but allowing it as an identifier might be confusing.
>> var c = { if (a > b) a; else b; };
>> var d = [ a : b, b : 1 ];
>>
>
> Yes, using [a: b, c: d] to define a dictionary is better than the
> curly braces syntax. It's very similar with the array syntax. I think
> I'll use this one.
OK, that's probably the best choice. (Python does use a[b:c] to 'slice'
an array, but I think our dictionary instantiation is different enough
not to cause confusion.)
>> var a = {
>> if (a) {
>> b;
>> } else {
>> return c;
>> }
>> }
>>
>>The issue becomes apparent with big expressions and functions: people
>>want to look for the 'return'.
>>
>
> Good point.
>
> I think in the last case the compiler can be instructed to detect it,
> and issue a warning. This might be an indication the programmer forgot
> about the implicit return. I'll think about it.
OK.
>>>I suspect the implicit return of the last expression in a function or
>>>a block will be ignored by most people. In most cases, the return
>>>value will be simply ignored in the code. I don't think people will be
>>>bothered that instead of void, the f2(2) call above returns 3.
>>>
>>Good point (although in theory someone could have 'if (f2(2))', but
>>that'd be incredibly bad programming).
>>
>
> Not only that, but it would be incorrect syntax ;-0
Incorrect in the flow language, but e.g. Python and JavaScript would
happily evaluate it to false, no questions asked :) (but this is
certainly not an issue)
> Thanks for your comments!
Glad to be of help :)
BTW, I know it's not our first priority, but one idea for the name could
be 'FlowScript'. It doesn't seem to be in wide use and has a nice sense
of 'flow of script' (although the file suffix might be FS ;).
(: A ;)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]