dcg

    0

    1答えて

    私はプロローグで新しく、私は電卓をプログラムしたいと思います。そのためには、通常の形式(インフィクス形式)で書かれた、与えられた算術式を処理する述語をプログラムして、その接頭辞形式を得るようにする必要があります。 式の要素は、タームがターンリストに入るように、[operator、term1、term2]という形式の3つの要素を持つサブリストにグループ化されます。 解析が定義され、この例のように動作

    1

    1答えて

    私のような、いくつかの基本的なルールで、プロローグで英語の言語の文法を記述しようとしていますが、文法声明のようなルールの場合: noun(X, woman(X)) --> [woman]. iv(Y, snort(Y)) --> [snorts]. 私は迷っています。これらはどういう意味ですか?変数Xが繰り返し表示されるのはなぜですか?

    1

    1答えて

    2つの方法のいずれかで副詞を記述できるフレーズを定義する最善の方法は何でしょうか? は、あなただけ言うことができる: adverb_phrase(N、ADV(N、前売)) - >道1. adverb_phrase(N、ADV(N、前売)) - >道2. 私はこれをやってみましたが、出力には変数が表示されますが、正しく表示されません。あなたは間違いなく  DCGsの状態選択肢に有効な方法であることを

    4

    1答えて

    入力を解析するためにProlog DCGを使用すると、文法の付随するBNFを持つことがうれしいです。例えば :として BNF <Sentence> ::= <Noun_phrase> <Verb_phrase> <Noun_phrase> ::= <Determiner> <Noun> <Verb_phrase> ::= <Verb> <Phrase> <Determiner> ::= a

    1

    1答えて

    DCGで次のような過渡関数を作ることはできますか?または、DCGルールと組み合わせることはできますか? genx(A,B) :- gen(A,B). genx(A,C) :- gen(A,B), genx(B,C). gen(a,b). gen(b,c). 私は、私は正確にやろうとしているかを説明します: 私はこの文法を持っている場合: noun_phrase(D,N) --> det(

    2

    1答えて

    Prolog述語をDCGコードに変換しようとしています。私が文法の熟語に慣れていても、DCGがどのようにリストと一緒に働くのか、どのように使用するのかを理解するのにはいくつかの問題があります。 cleanList([], []). cleanList([H|L], [H|LL]) :- number(H), cleanList(L, LL), !. cleanLi

    1

    2答えて

    例は次のようになります。 node(3, nil, 14). node(14, nil, 15). node(15, nil, 92). 私は私のノードではなく、パラメータ で2つの値の3を持っているとして鉱山が異なるが同様の質問がここで尋ねた見てきましたそれが実行すべきかの例: ?- inOrder(3, X). X = [3, 14, 15, 35, 65, 89, 92] .

    -1

    1答えて

    E -> Tの意味は?変数Eは変数Tを意味しますか? リンクされているこのコード: e(TS,R) :- t(TS,R). 感謝をあなたの助け

    4

    3答えて

    私は心をたくさん包み込み、それを理解できませんでした。 はバックトラックに、この形式のリストを生成するスクリプトを作成することが可能です: [a] [a,b] [a,b,a] [a,b,a,b] ... 私は一度に2つの要素を生成し、1を作ったが、私の頭には「Aを生成1をしようとしてけがをし始めました次回の "b"と次の "a"というように続きます。ここで は一度に2つの要素のためのス

    0

    1答えて

    バイナリツリーで偶数レベルに配置されているすべての要素を探し、リストに配置しようとしています。 これは私が試したものです: concat([],L,L). concat([H|T], L, [L|LRez]) :- concat(T,L,LRez). find(R, t(_, R, _), 0). find(X, t(S, R, D),P) :- X < R, find(X, S, P1)