我如何声明两个列表具有相同的长度?

use*_*812 2 prolog

我需要知道如何比较Prolog中两个列表的长度.这是我到目前为止:

sum(N1,N2) :-
    checklength(N1,N2).

checklength(N1,N2) :-
    L1 is length(N1,What),
    L2 is length(N2,What),
    Comp(L1,L2).

Comp(L1,L2) :-
    L1=:=L2.
Run Code Online (Sandbox Code Playgroud)

Die*_*lla 9

当然,CapelliC的答案是完美的,但你也可以尝试解决这个问题的"标准"方法:

same_length([],[]).
same_length([_|L1],[_|L2]) :- same_length(L1, L2).
Run Code Online (Sandbox Code Playgroud)