yap

    17熱度

    2回答

    我正在嘗試使用JPL進行Java程序和YAP Prolog的交互。 在我的Java文件,這條線是拋出一個異常: Query query = new Query("consult", new Term[] { new Atom("test.pl") }); 例外如下所示: Exception in thread "main" jpl.JPLException: this Query's engine

    3熱度

    2回答

    任何人都可以解釋爲什麼以下YAP代碼不會導致變量Result與time_out統一? ?- time_out(sleep(3),1,Result). Result = success. ?- time_out(sleep(3),2,Result). Result = success. ?- time_out(sleep(3),1000,Result). Result = success.

    -1熱度

    1回答

    輸入: run([p(X,Y,Z),h(Z,P,Q)],Out). 代碼: :- ensure_loaded(library(lists)). run([X|Y],Out) :- X =.. [Fct|Args], X =..Total, length(Args,L), concat(abs_,L,Fct_A), Out =.. [Fct_

    0熱度

    1回答

    我是新的yap(以及一般的Prolog),我不知道如何獲取當前目錄。 事實上,我不能讓文檔的感覺: working_directory(-CurDir,?NextDir) 在CurDir取當前目錄。如果NextDir綁定到一個原子,請將其值設置爲當前工作目錄。 我不明白什麼叫 「在CurDir」。 此外,我無法找到正式參數前面的-和?的文檔。 (我猜?意味着該參數是可選的,但我不知道-。) 底線,

    0熱度

    1回答

    我剛剛在VMBox中安裝了Ubuntu 12.04,現在嘗試安裝「YAP Prolog」。因此,我使用「git clone ...」下載了代碼並獲取了我必須配置和構建的代碼。 在我的OSX上配置和構建工作正常,但以某種方式在我的Linux發行版上配置過程中出現錯誤。我不明白它,並找不到任何有用的互聯網。是 有可能我需要一些包?如果是,如何找出哪些? 我把的config.log到Google文檔:

    3熱度

    1回答

    當我在GNU Prolog和SWI Prolog上運行它時,此代碼正確計算差異列表中的元素數。但是,Yap進入了一個無限循環。 count(X-X1,0) :- unify_with_occurs_check(X,X1), !. count([H|T]-T1,N) :- count(T-T1,M), N is M+1. ?- count([1,2|A]-A,N). 爲什麼Prolog解釋

    0熱度

    1回答

    我正在使用yap。 假設我有這種情況: p(x,y): - q(x),f(x,y),g(x)。 我需要使用命令列表(p)將謂詞的主體放在列表中。 預期輸出應該是: [q,f,g]。 我該怎麼做?

    3熱度

    1回答

    我想找到一種方法來剖析我在prolog中編寫的謂詞(巨大的)的內存使用情況。我目前正在運行它swi和yap,我可以從這些進程看到內存消耗,一大塊內存得到分配。 的問題是,當謂語終止它不會收集解除分配/釋放/垃圾(我不得不停止解釋看回)加的內存量只保留增長謂詞運行時(無論如何,因爲尾遞歸優化應該可以緩解這個問題,我想,在每次迭代中)。 有沒有一種方法來發現增加使用的內存和檢查是否有效地調用尾遞歸優化

    6熱度

    5回答

    處理(我只在GMP庫的間接用戶主要通過swi-prolog和yap,但我解決這個問題我很感興趣。) 當執行與大的離譜值指數運算,主機系統或GMP不再能夠適當地處理溢出。我已經與上述系統的開發人員進行了交流,但他們沒有看到這方面的簡單解決方案。 這個問題是否爲其他GMP系統/用戶所知?你如何處理這種溢出? 作爲健全性檢查第一測試7^7^7這應該是值:375982 ... 32343 在32位系統中,

    1熱度

    1回答

    我想從my(yap)prolog腳本運行一個(python3)進程,並將其輸出格式化爲整數列表(例如, [1,2,3,4,5,6]。 這是我做的: process_create(path(python3), ['my_script.py', MyParam], [stdout(pipe(Out))]), read(Out, OutputList), close(Out).