dcg

    3熱度

    2回答

    -->運營商在Prolog中做什麼,它和:-有什麼區別? 我正在使用SWI Prolog。

    3熱度

    2回答

    列出的名單上有列出的這份名單: L = [[[a,b],[d,e]],[[m,f],[p,o]],[[r,l],[v,d]]]. 我想寫使用序言,以展它,它變成這樣一種方式的函數: L = [[a,b],[c,d],[m,f],[p,o],[r,l],[v,d]]. 有什麼建議嗎? 謝謝。

    1熱度

    1回答

    我想一個print命令添加到我的DCG語法,這裏是我有: program((R0 --> R)) --> [begin],instructs((R0 --> R)),[end]. instructs((R0 --> R)) --> instr((R0 --> R)). instructs((R0 --> R)) --> instr((R0 --> R1)),

    4熱度

    3回答

    我是Prolog的新手,我正在試圖理解一個語法如何從DCG轉化爲正常的明確子句。 我知道DCG符號只是Prolog中正常定義子句的語法糖。我開始描述正常語法和DCG之間的一些相似之處,但是沒有應用相同的模式,所以我在問是否存在一些我缺少的規則或可能有效的轉換算法。 這裏是我的工作的語法,這裏是我爲了做翻譯的是語法: expr --> term, addterm. addterm --> [].

    2熱度

    1回答

    我們的課本給了我們一個structurer的這個例子中Prolog的數學公式: math(Result) --> number(Number1), operator(Operator), number(Number2), { Result = [Number1, Operator, Number2] }. operator('+') --> ['+']. number('number')

    2熱度

    2回答

    我使用下面的檢查一個字符串是有效的與我的語法使用: id(ID) :- atom_chars(ID, [H|T]), is_alpha(H), ensure_valid_char(T). ensure_valid_char([H|T]) :- H == '_'; is_alpha(H); atom_number(H, _),

    1熱度

    1回答

    我試圖寫一個謂語和N={Expression,Number,Digit,Operator,Variable} T={1,2,3,+,-,*,(,),X,Y,Z}和S是表達和程序P定義爲 Expression-->Number **Expression-->(Expression) Operator (Expression)** Number-->Digit **Number --> Digi

    1熱度

    2回答

    我想寫一個Prolog謂詞,它可以使用DCG將給定的非負整數分解爲每個可能的總和。 例如: ?- s(3, L, []). L = [3] ? ; L = [2,1] ? ; L = [1,2] ? ; L = [1,1,1] ? ; false. 我開始寫一個斷言,這需要數N返回L = [1,2,3,...,N]: mkList(N, L) :- m(0, N, L).

    0熱度

    1回答

    我想教自己序言和實施一個解釋爲一個簡單的算術CFG: <expression> --> number <expression> --> (<expression>) <expression> --> <expression> + <expression> <expression> --> <expression> - <expression> <expression> --> <expre

    4熱度

    1回答

    我似乎一直在努力編寫DCG來解析輸入文件。但它似乎應該很簡單?是否有任何提示或技巧來思考這個問題? 對於一個具體的例子,可以說我想解析一個fasta文件。 (https://en.wikipedia.org/wiki/FASTA_format)。我想閱讀每個描述和每個序列的後面跟蹤。 :- use_module(library(pio)). :- use_module(library(dcg/b