Home フォーラム AZ-Prologサポート掲示板 _ ←自由変数が表示されないようにするには。

  • このトピックには4件の返信、1人の参加者があり、最後に上間健により8年前に更新されました。
4件の返信スレッドを表示中
  • 投稿者
    投稿
    • #58476
      上間健
      ゲスト

      自分の家系図をAZ-Prologで遊びたいと思い複合項にしました。

      それをAZ-Prologでとり出そうとして次を実行したら

      _自由変数も表示されます。それは仕様ですか?

      (沖縄なので名前が土着ですが!それはおいといで)
      (生存者の名前は変更しました)

      〜〜実行画面〜〜
      AZ-Prolog Version 9.53 (Linux/x64)
      Copyright (C) SOFNEC CO., LTD. 1987-2016/09/11
      | ?-戸籍(Name,_,上間朝盛,_,_).
      Name = 上間敏男,
      _.5 = 昭和03年09月15日,
      _.6 = 小橋川ウシ,
      _.7 = 長男;
      Name = 上間次郎,
      _.5 = 昭和11年06月29日,
      _.6 = 上間ナバ,
      _.7 = 長男二男
      yes
      | ?-

    • #58477
      稲葉
      ゲスト

      >_自由変数も表示されます。それは仕様ですか?

      はい。AZ-Prologではトップレベルの虚変数(”_”のみの変数名)の場合、
      その引数に何が束縛されたかも表示される仕様です。
      そのさい、どの位置の虚変数がなにに該当するか変数名だけでは識別が
      できないため、虚変数の出現順に昇順の番号を便宜的に付与しています。

    • #58478
      上間健
      ゲスト

      稲葉さん
      ありがとうございます。

      Nameの部分だけ表示することはできないのでしょうか?

    • #58479
      稲葉
      ゲスト

      戸籍(A,B):- 戸籍(A,_,B,_,_).
      と定義して

      ?-戸籍(Name,上間朝盛).
      で如何でしょう。

      TopLevelの仕様はセミコロン入力による強制バックトラックによって
      おのおのの引数がどういう束縛になったかなどのデバッグのための情報も
      兼ねますから現行の仕様が有意だと考えています。
      トレースをとったとき、虚変数であってもなんらかの束縛がされるわけです
      から、これの表示がされます。TopLevelもその延長にあります。

    • #58480
      上間健
      ゲスト

      稲葉さん

      ありがとうございます。

      できました。

      | 戸籍(A,B):-戸籍(A,_,B,_,_).
      | ?-戸籍(A,上間朝盛).
      A = 上間敏男;
      A = 上間次郎

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