문제

프롤로그 목록을 효율성 측면에서 프롤로그 목록 (목록이 아님)으로 변환하는 가장 좋은 방법은 무엇입니까?

인터페이스 및 사용 예제는 다음과 같습니다.

%% list_to_term(+List:list, +Functor:atom, -Term:term)
%
% Usage:
%
% ?- list_to_term([], myfunctor, Term).
% Term = myfunctor.
%
% ?- list_to_term([a, b, [c], D, 2], myfunctor, Term).
% Term = myfunctor(a, b, [c], D, 2).

즉, 주어진 목록 (실제로 중첩 된 용어)은 주어진 이름의 용어로 평평하게됩니다.

나는 이것을하는 것이 합리적이라고 말하는 것이 아닙니다. (그러나 당신이 그렇게 생각한다면, 당신의 답변에 USECASE를 제공하십시오.)

도움이 되었습니까?

해결책

당신은 그것을 사용해야합니다 =.. 처럼 운영자 :

list_to_term(List, Functor, Term) :-
    Term =.. [Functor | List].
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top