¿Por qué no tenemos dos valores nulos?

A menudo me he preguntado por qué los idiomas con unanull representando"sin valor" no distingas entre el pasivo "No sé cuál es el valor" y el más asertivo "No hay valor"..

Ha habido varios casos en los que me hubiera gustado diferenciar entre los dos (especialmente cuando se trabaja con datos de entrada de usuarios y bases de datos).

Imagino lo siguiente, donde nombramos los dos estadosunknown ynull:

var apple;

while (apple is unknown)
{
    askForApple();
}

if (apple is null)
{
    sulk();
}
else
{
    eatApple(apple);
}

Obviamente, podemos escapar sin almacenar manualmente el estado en otro lugar, pero también podemos hacer eso para nulos.

Entonces, si podemos tener unanull, ¿por qué no podemos tener dos?

Respuestas a la pregunta(27)

Su respuesta a la pregunta