"If FC is not a partial function application..."

In 3.1.5.1 of the editor's draft, step 5.b says:
     If FC is not a partial function application,
     F is invoked with the converted argument values,
     resulting in a value of F's return type or a dynamic error.
     The use of SC and DC and the set of possible error conditions
     depend on the kind of function that is called:

There are some odd things about this:

(1)
"F is invoked". The point of the text is to specify what it means to
invoke F, so it seems circular for part of that to be "F is invoked".
I could sort of see it is an introductory sentence, in the sense of:
     Okay, now that we've got F and the converted arg values,
     we 'invoke' F, which means the following things happen...
but the rest of the text doesn't really suport that reading.

(2)
"The use of SC and DC and the set of possible error conditions
depend on the kind of function that is called:"
This sets up the cases for built-in, external/host and imp-def
functions, which do indeed talk about the SC, DC, and errors.
But the case for partially applied functions doesn't talk about
any of that, and the case for user-defined+anon functions
talks about a whole lot of other stuff. (It's the only case
that *is* saying what it means to invoke F, but the preamble
doesn't set it up to do so.)

(3)
"kind of function"
This implies that 'function kind' is a property of functions,
but that's not supported by the Data Model.

-Michael

Received on Sunday, 28 February 2016 05:12:00 UTC