ANONYMOUS wrote:
> 1 .Is it possible to have cases where functions and variables in ml share the same identifier while still being separate entities? Or do they have to be wholly unique?
No - you cannot introduce a new function if its name is already used as a variable's name, or introduce a new variable if its name is already used as a function's name.
> 2. Do parameters behave like they do in C, rather than in Python where variables passed to a function via one of its parameters can be directly updated by said function? (ie a function has a variable x, that it passes to another function which then updates the value of x in the original function).
Parameters are passed as they are in C. A copy of an actual parameter's value is used to initialise a function's formal parameter. This is termed pass-by-value (and is the only parameter passing mechanism in C).
> 3. Each line is one statement, does this mean variable initialisations are limited to one per line, or can one line have multiple variable initialisations on it? If so, what does this look like (are they separated by commas?)
There are no 'variable initialisation' statements, only assignment statements, and each statement appears on its own line.
> and also, concerning the project brief page itself:
> 4. What is meant by point 8 on the “Our ml language” section of the project page? Do arg0, arg1, etc. refer to arguments passed to the main() function of the c file/code we create by translating a given ml file?
When the compiled C program is executed, its runtime command-line arguments are available in ml's arg0, arg1, ...
Hope this helps,