2

以下に示す問題があります。

次のように整数リストを定義します。

  1. 空リストは整数リストです
  2. L が整数リストで、N が整数の場合、[N | L] は整数リストです
  3. L1 と L2 が整数リストの場合、[L1 | L2]。

が整数リストのinteger_list(L)場合にのみ満たされるプロローグ プログラムを作成します。L

私のプログラムは 3 番目の要件を実装できません。誰かが私に間違いを指摘できますか?

int_list([]):-!.
int_list(L):-
   is_list(L),
   L=[X|Y],
   check(L).
int_list(L):-
   L=[L1|L2],
   is_list(L1),
   is_list(L2),
   check(L1),
   check(L2).


check([]):-!.
check([X|Y]):-
  integer(X),
  check(Y).
4

2 に答える 2