1

私は Prolog を初めて使用し、暗号演算の問題 CROSS+ROADS = DANGER を解決するためにそれを使用していました。ただし、コードを実行すると、出力がありません。プログラムの何が問題なのか教えてもらえますか? とても感謝しています。

コード:

:- use_module(library(clpfd)).

cr_puzzle([C,R,O,S,S] + [R,O,A,D,S] = [D,A,N,G,E,R]) :-
    Puzzle = [ C,R ,O ,S ,A ,D, N ,G, E],
    Puzzle ins 0..9,

    all_different(Puzzle),
    labeling([],Puzzle),

    C*10000+R*1000+O*100+S*10+S+
            R*10000+O*1000+A*100+D*10+S #=
            D*100000 + A*10000+N*1000+G*100+E*10+R,

    C #\=0,R #\=0.

SWI-Prologを使用しています

4

2 に答える 2

1

で実行するスクリプトとしてこれを使用している場合はswipl myScript.pl、次のようにスクリプトへのエントリ ポイントを指定する必要があります。

:-initialization(myProgEntryPoint).

% define thousand other predicates

myProgEntryPoint :- write("Do stuff"), halt.

重要な部分は:-initialization(...).halt最後にあります。スクリプトの実行後にインタラクティブ インタープリターを開始する場合は、 を削除しhaltます。

ところで、インデントを修正する必要があります。そうしないと、コードがすぐに読めなくなります。

于 2015-04-27T15:59:45.807 に答える