Home フォーラム AZ-Prologサポート掲示板 AZ−Prologで否定(true).の述語を教えてください。

  • このトピックは空です。
5件の返信スレッドを表示中
  • 投稿者
    投稿
    • #58447
      上間
      ゲスト

      否定の述語

      マニュアルで検索したのですが、見つけきれませんでした。

      テストしてもうまく行きません。
      | ?-\+(false).
      | ?-not(false).
      no
      | ?-not(1==2).
      no
      | ?-

    • #58452
      上間健
      ゲスト

      自前で定義しないといけないのでしょうか?

      NOT

      ==============
      not(X) :- X, !, fail.
      not(_).

    • #58453
      上間健
      ゲスト

      rc初期化ファイルはどこでしょうか?
      そこに書き込めばいいですね!

    • #58455
      上間健
      ゲスト

      ホームフォルダ 〜 に azprolog.ini ファイルを作成。

      % cat azprolog.ini

      not(X) :- X, !, fail.
      not(_).

      上がファイルの中身です。

      zshシェルなので ~/.zshrc に
      alias prolog=’prolog -c ~/azprolog.ini’

      を書き込みました。

      それでターミナルを開きなおして テストしました。

      AZ-Prolog Version 9.53 (Linux/x64)
      Copyright (C) SOFNEC CO., LTD. 1987-2016/09/11
      | ?-listing.
      not(X) :-
      X,
      !,
      fail.
      not(_).
      yes
      | ?-not(3==3).
      no
      | ?-not(3==4).
      yes
      | ?-not(true).
      no
      | ?-not(false).
      yes
      | ?-

    • #58456
      稲葉
      ゲスト

      fy オペレータ述語の \+ です。 (Winでは 半角の ¥+ )

      ただし、TopLevelで入力するときは、?- のあとにスペースをあけないと
      記号連続の述語として扱われてしまいますのでご注意ください。
      | ?-\+ fail.
      | ?- listing.
      ?-\+(fail). <== 述語 ’?-\+’ /2 として登録
      yes

      | ?- \+ fail.
      yes
      | ?- \+ true.
      no
      | ?- \+ \+ true.
      yes

    • #58465
      上間健
      ゲスト

      稲葉さま
      ありがとうございました。

      >>稲葉さん:: 記号連続の述語として扱われてしまいますのでご注意ください。

      \+ も試していたのですが、

      プロンプトにつなげて実行していたので、この述語は定義されていないな〜〜と勘違いしていました。

    • #59017
      Inaba
      ゲスト

      fy オペレータ述語の \+ です。 (Winでは 半角の ¥+ )

      ただし、TopLevelで入力するときは、?- のあとにスペースをあけないと
      記号連続の述語として扱われてしまいますのでご注意ください。
      | ?-\+ fail.
      | ?- listing.
      ?-\+(fail). <== 述語 ’?-\+’ /2 として登録されてしまう。
      yes

      | ?- \+ fail.
      yes
      | ?- \+ true.
      no
      | ?- \+ \+ true.
      yes

    • #59018
      Inaba
      ゲスト

      fy オペレータ述語の \+ です。 (Winでは 半角の ¥+ )

      ただし、TopLevelで入力するときは、?- のあとにスペースをあけないと
      記号連続の述語として扱われてしまいますのでご注意ください。
      | ?-\+ fail.
      | ?- listing.
      ?-\+(fail). <== 述語 ’?-\+’ /2 として登録されてしまう。
      yes

      | ?- \+ fail.
      yes
      | ?- \+ true.
      no
      | ?- \+ \+ true.
      yes

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