(original) (raw)
On 06/15/2012 12:18 AM, Nick Coghlan wrote:
Perhaps you meant "ill-concieved"?No, I mean ill-defined. The criteria for when a particular platform should flip that bit for an arbitrary parameter is highly unclear, as whether or not a particular parameter is "implemented" or not depends on the operation and the parameter.
I guess I really did do a poor job of explaining it then. Here's another pass.
My working definition for "is\_implemented" is "is this functionality available at all?" Pressed to produce a stricter definition, I \*would\* define "is\_implemented" as:
True if it is possible to produce any valid inputs for the parameter on the current platform, and False otherwise.However, I don't think parameters should be added and removed from a function's signature based on what functionality is available on the local platform--that way lies madness. Instead I think it best to define a no-op default value for every optional parameter, and always accept that even when the functionality behind it isn't locally available. Function signatures should be stable. Therefore I amend the definition to:
True if it is possible to produce any valid non-default inputs for the parameter on the current platform, and False otherwise.
If I understand you correctly, you seem to be trying to apply "is\_implemented" to the problem of predicting which specific inputs to a parameter would be valid. I don't think that problem is tractable--it's way too context-specific.
/arry