LaTeX3用の10進浮動小数点ユニットを作成しました(純粋なマクロ...それは大変でした)。特に、どのようx < y < z
に解析するかを決定する必要があります。3つのオプションがあります。
<
左結合の二項演算子として扱うため、x < y < z
と同等になり(x < y) < z
ます。これが何をするかC
です:-1 < 0 < 1
になる(-1 < 0) < 1
、したがって、、1 < 1
つまり0
。<
右結合二項演算子として扱うため、x<y<z
と同等になりx < (y < z)
ます。そのオプションには何の利点もありません。に遭遇した場合は
<
、さらに比較演算子を先読みし、とx < y < z
同等として扱います。(x < y) && (y < z)
ここで、y
は1回だけ評価されます。これは、ほとんどの非プログラマーが期待することです。そして、かなりの数のLaTeXユーザーがプログラマーではありません。
現時点では最初のオプションを使用していますが、あまり自然ではないようです。オーバーヘッドをかけすぎずに2番目のケースを実装できると思います。するべきか?
その質問は主観的なものなので、客観的な質問をさせてください。どの主流言語がオプション3を選択しますか?のような混合物で何が起こるかについての詳細に興味がありa < b > c == d < e != f
ます。他の選択肢があれば、それにも興味があります。