prolog

    0

    2答えて

    最初の変数がセットの識別子で、2番目が識別子に関連付けられた値です。例えば : set(a,2). set(a,c). set(a,1). set(a,a). set(a,3). set(a,b). 私は彼らの辞書式順序で特定のセットのどれであろう出力値(繰り返し演算子を使用して)/ 2を注文述語を構築する必要があります。例えば ?- ordering(a,Output). は、

    1

    1答えて

    申し訳ありませんが(ない正確に:P): some_fact('Yes'). some_fact('No'). some_rule(X):- some_fact(X), (X =:= 'Yes' -> writeln("ISS YES") ; writeln("No")). エラー:算術: `「はい」」その後機能 ではないですが、私はGoogleで検索して文字列を=と\ = しかし、もしと

    2

    1答えて

    次の問題の答えが見つかりません。オートマトンは "A:5739"のような文字列を受け入れます。または "C :: 399 \ 4342)"、これらは私にファイルシステムのパスを思い出させますが、私はそれについてはわかりません。 問題のテキスト: はPrologで書かれた以下の有限状態オートマトンを考えてみましょう。 認識されるようですか? は、その引数が文字または数字であるとき真である述語 alp

    2

    1答えて

    bc(0,N,R,R):- N>0,R is 1,!. bc(M,0,R,R):- M>0,R is 1,!. bc(N,N,R,R):- R is 1,!. bc(M,N,R,R1):- M1 is M - 1, N1 is N - 1, bc(M1,N1,R,R2), bc(M1,N,R,R3), R1 is R2+R3. なぜ偽を返

    7

    1答えて

    サンプルプログラムでは、8つのクイーンソリューションの数を列挙してカウントしています。 [user]. (perm([X|Y],Z) :- (perm(Y,W),takeout(X,Z,W))). perm([],[]). takeout(X,[X|R],R). (takeout(X,[F|R],[F|S]) :- (takeout(X,R,S))). (solve(P) :- (per

    4

    2答えて

    findallがない高次のPrologバリアントを使用しています。 私たち自身のfindallの実装に関するもう1つの質問があります:Getting list of solutions in Prolog。 非効率的な実装は次のとおりです。 parent(pam, bob). %pam is a parent of bob parent(george, bob). %george is a pa

    1

    1答えて

    GNU Prologで->演算子を使用しようとしていますが、可変スコープに問題があります。ここでは例です:プロローグコンソールで example(A) :- B = A, (B == 2 -> write(B), write(' is 2'), nl); (write(B), write(' is not 2'), nl). : | ?- example(2).

    1

    1答えて

    私は今プロローグを理解しようとしています。私は入力を与えたい:変換(S(S(S(X)))、Y)とする必要があり、出力Y = 3 convert(s(0), 1). convert(s(s(0)), 2). convert(s(X),Y) :- convert(X,Y is (Y+1)). これらの私のルールは今ですが、入力のみ: 変換する(s(0)、1)。そして、 convert(s(s(

    2

    2答えて

    [[a、b]、[b、c]、[c、d]]のリストがあり、[a、b、c] ]。 私のコードは次のとおりです。 unMakeTuple([],_). unMakeTuple([[A,_]|T],Ret):- insertOnList(A,Ret,Ret1), nl,write(Ret), nl,write(Ret1), unMakeTuple(T,Ret

    0

    1答えて

    プロローグにリストのリストの共通部分を作成したい。 (行列、セルとしてのリスト) 行と列の数が同じ(矩形)の場合は、ケースのみを扱う必要があります。リストは順序付けされ、重複する要素は含まれません(ord_setsです)。 どうすればいいですか? 例:(3行、3列) A: [[[1,2],[3,2,1],[3,4,5]], [[1,2],[3,2,1],[3,4,5]], [[1,2],[3