I 쌍의리스트를 가지고 쌍의 목록에서 하나의리스트를 추출 [{1, A}, {2, B}, {3, C}, {4, D}]프롤로그 :
어떻게 각 쌍의 두 번째 요소를 추출하여 별도의 목록으로 만들 수 있습니까?
그래서 : [A, B, C, D]
미안 해요, 프롤로그에 새로운 오전과 대답을 주위에 모양을 가지고 있지만 그것을 찾을 수 없습니다.
I 쌍의리스트를 가지고 쌍의 목록에서 하나의리스트를 추출 [{1, A}, {2, B}, {3, C}, {4, D}]프롤로그 :
어떻게 각 쌍의 두 번째 요소를 추출하여 별도의 목록으로 만들 수 있습니까?
그래서 : [A, B, C, D]
미안 해요, 프롤로그에 새로운 오전과 대답을 주위에 모양을 가지고 있지만 그것을 찾을 수 없습니다.
표시 한 내용은 쌍 목록이 아닙니다. 입니다 :이 목록으로
[1-a, 2-b, 3-c, 4-d].
당신은 할 수 있습니다 :
?- pairs_values([1-a, 2-b, 3-c, 4-d], V).
V = [a, b, c, d].
?- pairs_keys([1-a, 2-b, 3-c, 4-d], K).
K = [1, 2, 3, 4].
그리고 않는 조건은 명시 적입니다 :
seconds([], []).
seconds([_A-B|Pairs], [B|Secs]) :-
seconds(Pairs, Secs).
은 물론, 주장하는 경우 :
secs([], []).
secs([{_A, B}|Pairs], [B|Secs]) :-
secs(Pairs, Secs).
하지만 스스로 결정할 수 있습니다. 모자는 명심 가장 잘 작동합니다
?- write_canonical({1,a}).
{}(','(1,a))
true.
?- write_canonical(1-a).
-(1,a)
true.
좋은 자료를 프롤로그에, 다른 사람의 사이에서 :
만, 당신은
:- use_module(library(lambda)).
extract_second(In, Out) :-
maplist(\X^Y^(X = {_,Y}), In, Out).
당신이 라이브러리 (람다)를 얻을 수 있습니다 수행 할 수 있습니다 http://www.swi-prolog.org/download/pack/lambda-1.0.0.tgz
[here] (http://www.complang.tuwien.ac.at/ulrich/Prolog-inedit/ISO-Hiord#implementation) 정의는 SICStus!를 포함하여 모든 준수하는 Prolog 시스템에서 작동합니다. – false
죄송합니다, 그것은 실수였다. 네 말이 맞아, [1-a, 2-b, 3-c, 4-d]는 내가 원한 것이다. Btw, 참조 주셔서 감사합니다. – Hydar77