「あいだにある」というのは境界上のばあいも含む、つまりx=x1やx=x2のばあいも含むとします。x=x1=x2もアリとします。ここでたとえばx1≦x2ということであれば、x1≦x∧x≦x2で判定できますが、いまはx1とx2の大小は決まっていません。ここではx1とx、x2とxとの関係に着目します。x)は、xがx1とx2のあいだにあるばあい、一方が0か正の値でもう一方が0か負の値になります。これがあいだにないばあいは、どちらも正の値かどちらも負の値かになります。x)はxがx1とx2のあいだにあるばあいにだけ0以下の値になります。述語betweenを定義すると。C++だと、こんな感じ。0;}Haskellだと、こんな感じ。y2)を対角の頂点とする矩形の内部にあるか否かを判定せよ単に「2点を対角の頂点とする矩形」と言ってしまうと際限がないのでキチンと定義しないといけないのですが。このばあい辺がx軸y軸に平行な矩形ですね。y2)の4点を頂点とする矩形、と言ってもいいかもしれません。y2のばあい)もアリとします。そのばあいは線分上や点上にあるばあいを内部にあるとします。一次元ではすでにできているので、あとはx軸y軸それぞれについて判定すればよいわけで。述語insideを定義すると。C++だと、こんな感じ。y);}Haskellだと、こんな感じ。述語insideを簡単に定義できたのはよいのですが、ここでbetweenを展開して考えてみると。y)がともに0以下のばあい述語insideが真になります。x)の積が0以下になるか否かで判定ができたように、算術演算を使ってできないだろうか、と考えてしまうわけです。