複合名

複合名は式である。複合名を式として評価したとき、その値は以下のように決定される。

argument, resolution argument, continuation argument を姓とする複合名は、それぞれコンテキスト引数 (context argumet)、引数解決時引数 (resolution argument)、コンティニュエーション引数 (continuation argument) として評価される。

argument symbol を姓とする複合名は有名ベクトル (named vector) として評価される。argument symbol を姓とする複合名は引数の名前を表すために使われる。

decimal, hexadecimal を姓とする複合名は、それぞれ 10 進法、16 進法の数値として評価される。この数値は自然数型になる。パステルステッチの自然数型は 0 以上の整数を表現する。ただし、固有名が数値として解釈できない文字列であるときは、ブーリアン型 (Boolean) の false として評価される。また、姓 binary は 2 進法の数値のために予約されている。

static local name を姓とする複合名は、出現するたびに、固有名が互いに異なり、姓が resolved static local name である有名ベクトルとして評価される。mentioned above を姓とする複合名は、固有名が同じで姓が static local name である複合名のうち、直前に出現したものと同じ有名ベクトルとして評価される。mentioned above を姓とする複合名が記述されているにもかかわらず、固有名が同じで姓が static local name である複合名がそれ以前に記述されていない場合の動作は、実装により異なる。

姓が main で、固有名が true, false, null, terminal continuation であれば、それぞれ、ブーリアン型の true、ブーリアン型の false、零ベクトル、終端コンティニュエーションとして評価される。姓が main で固有名が % である複合名は、シーケンシャル演算スタック (sequential operation stack) のトップの値として評価される。シーケンシャル演算スタックが空である場合の動作は実装により異なる。

これまでの規則で値が決定しない複合名は有名ベクトルとして評価される。