페어 데이터는 사용하기가 좋지만 선물하기가 어렵습니다. 나는 열쇠의 인쇄를 완수하는 방법을 묻는다. & 값들이 즐겁게 정리되어있다. 쌍 값의 앞자리 0은 도움이됩니다. 샘플 데이터 :프롤로그는 페어 인쇄 형식을 지정하는 방법은 무엇입니까?
[1-7,2-43,3-56,4-87,5-110,6-80,7-15]
[1-1837,2-1873,3-1911,4-1946,5-1975,6-1994,7-2005]
SWI format_predicate; 그러나 할 수 없었다. 그런 다음 인라인을 실험 해 보았습니다. 형식 ('~ n ~ w ~ w ~ w ~ n', [ '쌍 :', 1-246,1-2, 'EOL']).
최종 결과는 형태 KK-VVVV의 쌍을 처리해야
01-0007 02-0043 03-0056 04-0087 05-0110 06-0080 07-0015 398 People 7 Gens.
01-1837 02-1873 03-1911 04-1946 05-1975 06-1994 07-2005 Spanning 168 Years
최종 답변 :
fpair(A-B) :- format('~`0t~d~2|-~`0t~d~7| ', [A,B])
applist(_,[]). applist(P,[X|L]) :- Q =.. [P,X],call(Q),applist(P,L).
dojustone(X):- format('[email protected] ',[fpair(X)]).
dolist(X):- applist(dolist,X).
거의 다 왔으므로 답이 형식 문제를 해결했습니다. 이제는 쌍의 목록에 적용하는 방법을 알아 내야합니다. 문제는 Prolog 문제입니다.하지만 여전히 중첩을 혼란스럽게합니다. 되돌아 보면 더 나은 문제 설명은 가변 요소 List를 포함했을 것입니다. N 쌍의 L 개, 각 쌍은 2 자리 숫자 키로 형식화되며 4 자리 숫자 값입니다. @은 솔루션의 핵심이었습니다. fpair (A-B) : - 형식 ('~'0t ~ d ~ 2 | ~'0t ~ d ~ 7 | ', [A, B]). gets : 01 0007 02 0043 03 0056이 표현식은 작동하지 않습니다 : format ('~ @', maplist (fpair, [(1-246), (1-2), (3-2015)]) mardown next. – softbrass
출력을 원하는대로 보여줄 수 있습니까? – lurker
은 3 개의 정의로 구성되어 있습니다. 목록의 형식화 된 긴 목록을 만들 수 있습니다 : applist (_, []). applist (P, [X | L] (X) : - 형식 ('~ @', [fpair (X)]) dolist (X) : - Q = .. [P, X], call (Q), applist (P, L)) : - applist (dolist, X) – softbrass