(j3.2006) are selectors allowed to be procedures ?

Malcolm Cohen malcolm
Fri Oct 23 00:29:20 EDT 2009

> According to the interface, FUNC does return a pointer result.


The standard is littered with text that doesn't work if functions are allowed to 
return bare pointers to procedures.  For example
  "If RESULT appears, the name of the result variable of the function ..."

Note the word "variable" in there.

That there are quibbles with ASSOCIATE too is merely another tiny inconsistency 
considering the huge number of direct contradictions if one allows functions to 
return procedures.

By clause 1, those contradictions mean that functions are not permitted to 
return bare procedure pointers (because the standard does not establish an 

There is evidence that we intended to allow functions to do that, but we 
certainly didn't actually succeed in allowing them.  Why we started making edits 
to allow them and then stopped miles short of what was needed is a question I 
cannot answer (and probably has a different answer for each committee member). 
Maybe some people changed their minds about whether it was a good idea and 
forgot we'd already made some edits.  Maybe some people thought syntax was 
enough and we didn't need semantics.

Anyway, it is something we ought to sort out sometime.

................................Malcolm Cohen, Nihon NAG, Tokyo.

More information about the J3 mailing list