difference-lists

    1熱度

    1回答

    listdiff是一對車,其車輛是L,其CDR是eq?到L或者(cdr L)或者(cdr(cdr L)))等。listdiff的cdr不一定是列表;它可能是任何對象。 listdiff D表示在(cdr D)之前的(car D)的前綴。例如,假設ils是不正確的列表(a i o u。y)。然後(cons ils ils)返回一個空的listdiff,(cons ils(cdr(cdr ils)))

    1熱度

    1回答

    當我寫下this question on an empty list as a difference list我想考什麼,我知道那些結構。但是,當我嘗試一些比較不同符號的簡單事情時,似乎我錯了,並且我確實知道實際上差異列表正在發生什麼。 ?- L = [a,b,c|[d,e]]-[d,e], L = [a,b,c]. false % expected true 我在SWI-Prolog和SI

    6熱度

    3回答

    考慮下面的程序,一個使用差異表,另一個是不是: reverse1(List1,R) :- rev1(List1, R-[]). rev1([], A-A). rev1([H|T], C-A) :-rev1(T, C - [H|A]). reverse2(List1,R) :- rev2(List1, R, []). rev2([], A, A). rev2([H|T], C, A) :

    1熱度

    1回答

    我必須寫謂詞將一個列表分成兩個列表(上半部): halve(X-Y, X-Z, Z-Y) :- halve_pom(X-Y, X-Y, Z), !. halve_pom(Z-Y, Y-Y, Z). halve_pom([_|A]-Y, [_,_|B]-Y, Z) :- halve_pom(A-Y, B-Y, Z). 這很容易,但現在我必須寫算法會做歸併 - 我不沒有任何想法。該算法必須

    5熱度

    3回答

    這個問題是指材料在本書的第3章:序言,Clocksin和Mellish 編程,埃德5 在這本書的第72頁,一個使用程序的差異列表顯示: partsOf(X,P):- partsacc(X,P,Hole) , Hole=[]. partsacc(X,[X|Hole],Hole):-basicpart(X). partsacc(X,P,Hole):- assembly(X,Subparts),

    1熱度

    2回答

    在這段序言代碼,我打算列出前N素數, (...) biggerPrime(N,P) :- isPrime(N), P is N, !. biggerPrime(N,P) :- N1 = N+1, biggerPrime(N1,P). primeListAcc(0,A,R,R) :- !. primeList(N,L) :-

    3熱度

    3回答

    我正在尋找一種方法來以特定方式對數字列表進行換位。 shuffle([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])應該返回[1, 3, 5, 7, 9, 11, 2, 6, 10, 4, 12, 8] 遞歸會是這樣的: [1,3,5,7,9,11] with remainder [2,4,6,8,10,12] [2,6,10] with remainder [4

    5熱度

    2回答

    我想將不完整列表轉換爲差異列表,反之亦然。 這是代碼定期列表轉換爲差異: reg2diff(L,X-Y):-append(L,Y,X). 我該如何去另一個方向?

    3熱度

    1回答

    我有一個zipWith功能: zipW(_, [], _, []) :- !. zipW(_, _, [], []) :- !. zipW(F,[H1|T1],[H2|T2],[H3|R]) :- X =.. [F, H1,H2, H3], call(X), zipW(F, T1, T2, R). 它工作正常,但現在我想這樣做對差異表,所

    3熱度

    5回答

    我在LISP中完成了這項作業,我需要從中列出原子,然後列出子列表。我敢肯定,這應該是一件容易的事情,但由於我不是一個程序員,所以這真的需要我花很長時間才能理解。 我有一個數字這份名單: (5 -1 (2 6 1) (8 7 -3) (0 (9 4)) -6) 如果我理解正確的話我的任務那麼我應該得到的東西是這樣的: (5 -1 -6 (2 6 1) (8 7 -3) (0 (9 4)))