prolog

    3熱度

    2回答

    我剛剛在序言開始了,我希望能執行以下任務: 做謂語A(P,N,L)使得對所有C這是L,P(N,C)第n個元素。 基本上我想執行範圍[0..N]的地圖。 在Haskell,我最熟悉的語言,這看起來像 f p n = map(p)[0..n] (哈斯克爾不相當有謂語,所以我在這裏採取了一些自由) 或pointfree f = (.enumFromTo 0).map 而且看起來我應該能夠在Pro

    0熱度

    2回答

    下面是我想出的代碼。但是,這裏有兩個問題。 首先,只顯示X的第一個值,即1。其次,如果Y爲假,則不會跳回到菜單1。 希望能在這方面得到一些幫助。 time(office_hour,1). time(office_hour,2). menu1 :- write('Input time'),nl, read(Y),nl,time(Y,X),nl,write(X),nl,menu

    3熱度

    1回答

    我正在計劃SWI Prolog程序(語義自然語言分析程序),它具有龐大而動態的事實集(包含大約30,000個條目的詞典)。是否有可能將這些事實存儲在外部數據庫中。由於其他要求,我正在考慮將Apache TinkerPop/JanusGraph/Cassandra作爲我的數據庫,但我也可以對支持的SQL/JDBC/ODBC數據庫感到滿意。

    0熱度

    1回答

    我想在prolog中創建列表列表的交集。 (矩陣,列表爲單元格) 我只能處理這種情況,行數和列數相同(矩形)。這些列表是有序的,並且不包含任何重複的元素(它們是ord_sets)。 我該怎麼做? 舉例:(3行3列) A: [[[1,2],[3,2,1],[3,4,5]], [[1,2],[3,2,1],[3,4,5]], [[1,2],[3,2,1],[3,4,5]]] B: [[[1]

    0熱度

    1回答

    我最近開始學習Prolog,並且對謂詞和函數有疑問。我怎麼能寫一個函數,它會檢查是否在謂詞對象是另一個謂詞例如: vertex(a). edge(l,k,-1). edge(k,l,4). edge(a,z,-2). checkEdges(edge(X,Y,_)) :- vertex(X),vertex(Y) P.S我怎樣才能讓此功能打印一條消息,如果元素不是頂點?

    3熱度

    1回答

    我有以下代碼: pick_even([], []). pick_even([_, H | T], [H | R]) :- pick_even(T, R). pick_even([_, H , _ | T], [H | R]) :- pick_even(T, R). 當運行查詢,?- pick_even(L,[4,7]).,我想收到的輸出: L = [_7650, 4,

    0熱度

    1回答

    所以我得到了一個迷宮,我試圖找出開放鄰居的數量(相鄰點具有字符'g'或' - ')。 openNeighbors(Maze,(R,C),Answer):- openCount(Maze,(R-1,C),Up), openCount(Maze,(R+1,C),Down), openCount(Maze,(R,C-1),Left), openCount(Maze,(R,C+1),Right),

    0熱度

    1回答

    我有這個事實或數據庫序言,看看教育是否相同或不足。例如高中< =高中是真的,高中< = phd也是如此,但是高中< =高中是錯誤的。 edu_less(high_school, bachelor). edu_less(bachelor, masters). edu_less(masters, phd). edu_lessOrEqual(X,X). edu_lessOrEqual(X, Y

    4熱度

    2回答

    cancer():- pain(strong), mood(depressed), fever(mild), bowel(bloody), miscellaneous(giddy). diagnose():- nl, cancer()->write("has cancer"). 例如,狗(X)說,X是一隻狗,但我的癌症陳

    0熱度

    1回答

    這可能是一個簡單/基本的問題,但我有麻煩抓住邏輯。 我想使用遞歸來計算列表的長度。 想象一下,對於這個問題有一個列表[a,b,c,d]。 我們有一個基本的子句和遞歸子句,如下所示。 基本條款總是處理最基本的問題,在這種情況下是一個空的列表。遞歸子句試圖解決列表中大小爲N-1的問題。 listLength([],0). listLength([Head|Tail], Count):-