Home フォーラム AZ-Prologサポート掲示板 不等号演算について

  • このトピックは空です。
2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #58662
      吉田
      ゲスト

      値を不等号で評価するとき、直接評価ができないのは不便ではないかと思っています。
      式演算では正しく使えるのですが、
      N>=M
      で値にマイナスが来るケースではつかいにくいと思います。

      | ?–3>=-4.
      Syntax error
      | ?-0-3>=0-4.
      yes

      gnu prolog でも同じでした。

    • #58664
      稲葉
      ゲスト

      | ?–3>=-4.
      Syntax error
      となるのは、記号文字列(区切り記号を除く)を一つのトークンとして読み込む仕様のため、
      “?-” , “3” , “>=-” , “4”
      となり、”>=-” に相当する演算子が存在しないのでエラーとなります。
      同様に、
      | ?–2<2.
      もシンタックスエラーとなりますが、これは
      “?–” ,”2″ , “<” , “2”
      となって ”?–“ に相当する演算子の部分でエラーになります。

      このような場合、演算子の後にスペースを補うか ”(“と ”)”で括ってください。
      | ?-3>= -4.
      | ?-3>=(-4).

      記号文字列を一つのトークンとするというのは、Prologにおいては次のような
      オペレータの動的定義も可能であるようにしているからです。
      | ?- op(700,xfx,>=-).
      yes
      | >=-(X,Y):- X>=Y*(-1).
      | ?- 3>=-4.
      yes
      よろしくお願いします。

    • #58665
      稲葉
      ゲスト

      例中マイナス連続が圧縮されて表示されてしまいました。

      同様に、
      | ?–2<2.
      ==>|?--2<2.
      もシンタックスエラーとなりますが、これは
      “?–” ,”2″ , “<” , “2”
      ==> ”?--”,”2″ , “<” , “2”
      のつもりでした。

2件の返信スレッドを表示中
  • フォーラム「AZ-Prologサポート掲示板」には新規投稿および返信を追加できません。
上部へスクロール