On 01/07/2013, at 12:56 AM, srean wrote:
>
> var a <-- g(b,c)
>
> makes it easy for the user to express the notion that the call to f(a,b)
> needs to be forced, regardless of whether I use a later or not.
Well, you can add this to the grammar yourself easily enough.
It can be implemented by:
var a = g (b,c);
C_hack::ignore (a);
That forces 'a' to be considered used, and so the assignment
won't be elided because 'a' isn't used.
So, IF you write Felix code and you put many of those C_hacks in like that,
I may think about implementing operator <--.
In fact I have a lot of code like that myself at the moment.
I'm just not convinced its the right solution .. and I have actual code
with that problem.
The reason I'm not convinced is it defeats the original principles
of Felix (which didn't have generators), which as a STRICT separation
of procedural code side effects) into statements, and functional code
(no effects) into expressions.
Generators broke this strict separation. I'm not sure I want to go even further
breaking these principles.
At one time I had this instead:
proc f ( px: &int, x:int);
var result <- f x;
which is very similar to what to wanted syntactically however note
carefully f is a procedure and the syntax is just a shorthand for
var result : ∫
f ( &result, x);
only the uninitialised variable is hidden and in the syntax it is definitely
initialised. note that this isn't a generator .. its a procedure.
This allows, for example
proc posix : &int * int = "*$1=posix($2);";
as a definition, you can then write:
var result <- posix x;
but you can NOT nest "posix x" in an expression since it isn't
a function. This call to posix cannot be elided, and the variable
result cannot be elided (because its address is taken its considered used).
However I got rid of that syntax for various reasons.
My point: your solution isn't the only one.
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language