سؤال

ما هي أفضل طريقة لتحويل قائمة حاسوب إلى حاسوب مصطلح (أي ليست قائمة)، من حيث الكفاءة، واستخدام المسندات المدمج في القائمة قدر الإمكان؟

والأمثلة واجهة الاستخدام وستكون التالية.

%% 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).

وأي بمعنى. ودكت قائمة معينة (والذي هو في الواقع مصطلح متداخل) إلى مصطلح مع اسم معين.

وأنا لا أقول أنه من المنطقي أن تفعل هذا. (ولكن إذا كنت تعتقد أن تفعل ذلك، يرجى تقديم نموذج التطبيقي في إجابتك.)

هل كانت مفيدة؟

المحلول

وتحتاج إلى استخدام المشغل =..، كما يلي:

list_to_term(List, Functor, Term) :-
    Term =.. [Functor | List].
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top