Prolog列出了转换

时间:2015-05-20 16:44:51

标签: prolog

我想以这种格式转换列表:

C=[via(A,B,C,D),via(G,T,H,U),via(J,O,L,P)]

进入以下内容:

F=[(C,D),(H,U),(L,P)]

F中的字母对应于C中的字母。

3 个答案:

答案 0 :(得分:3)

可能是这样的:

transform([], []).
transform([via(_, _, X, Y)|T)], [(X, Y)|TT) :-
     transform(T, TT).

答案 1 :(得分:2)

几个Prolog(如SWI-Prolog I' m在这里使用,在库中(apply))有maplist:

@if(errorObjs != null) {
  <Errors>
  @for(ErrorObject errObj : errorObjs) {
     <Error>
        <ErrorCode>@errObj.errorid</ErrorCode>
        <ErrorMessage>@errObj.errorcode</ErrorMessage>
     </Error>
  }
  </Errors>
}

答案 2 :(得分:2)

使用library(lambda)可归结为:

..., maplist(\via(_,_,X,Y)^(X,Y)^true, C, F), ...