2016-05-26 5 views
0

スイッチケースを使用してを使用してプロローグプログラミング言語?私は言語にはとても新しいので、自分で試してみませんか? のは、我々はプロローグにこのJavaスイッチケースを変更したいとしましょう:プロローグのダイナミックスイッチケース

int month = 8; 
     String monthString; 
     switch (month) { 
      case 1: monthString = "January"; 
        break; 
      case 2: monthString = "February"; 
        break; 
      case 3: monthString = "March"; 
        break; 
      case 4: monthString = "April"; 
        break; 
      case 5: monthString = "May"; 
        break; 
      case 6: monthString = "June"; 
        break; 
      case 7: monthString = "July"; 
        break; 
      case 8: monthString = "August"; 
        break; 
      case 9: monthString = "September"; 
        break; 
      case 10: monthString = "October"; 
        break; 
      case 11: monthString = "November"; 
        break; 
      case 12: monthString = "December"; 
        break; 
      default: monthString = "Invalid month"; 
        break; 
     } 
     System.out.println(monthString); 
    } 
} 
+0

switch(N) { case 1: procedure1(); break; case 2: procedure2(); break; default: procedure(); break; } 

は、と書くことができますか?どんな意味でダイナミックですか?一般的に私はあなたがプロローグでそれをすることはできないと言いますが、プログラムロジックをモデル化して、それがうまく動作するようにすることは可能でしょう。 – Limmen

+0

ダイナミックスイッチケースは厳密に言うと、あなたが取るべき異なるスイッチアクションごとに別々の機能を実装しています。コンパクトにするには、ダイナミックリンクライブラリの関数インデックス機能を使用し、ケース値を直接DLLの関数インデックスに変換することでケースを実行します。 Prologには、DLLに索引付け可能な述語を作成する機能があります。しかし、この質問は、あなたが命令言語論理をリレーショナル言語に適用しようとしていると思うように思えます。 – lurker

答えて

0

はPrologで命令型プログラミングを使用しないでください。しかし、不可欠コード:あなたは後にしている「スイッチケース」の種類を指定することができ

switch(1) :- 
    procedure1. 
switch(2) :- 
    procedure2. 
switch(_) :- 
    procedure;