NoValue は特別なリテラルです。タイプを持たず、すべてのタイプに変換可能です。NoValue との比較以外の、NoValue を使用するすべての計算は、NoValue を返します。
NoValue は、値が必要でありおそらく予期される結果にならない状況で使用されます。
たとえば、次のいずれかを入力します。
Intent>position(1,{3,4,5,1}) --> 4 Intent>position(1,{3,4,5}) --> NoValue Intent>
NoValue は適切な値です。ただし、"=" 演算子といくつかの関数は例外であり、NoValue はそれが含まれている計算または式を "汚染" して計算結果自身が NoValue になります。
Intent>3+NoValue --> NoValue Intent>
これはエラーを生じないことに注意してください。ただし、一部の関数では NoValue を渡すとエラーが発生します。
NoValue が許可される例外があり、結果は汚染されません。最も重要なのは、通常の "=" 演算子を使用して NoValue をテストし、ブーリアン演算結果を取得することができることです。たとえば、"if (foo = NoValue) then..." は NoValue を返さず、等価テストで NoValue を参照するだけです。