小编Lau*_*raW的帖子

什么是 ”!” 在序言中

有人可以解释我什么是“!” 在 Prolog 中做什么?我不明白。这里我有一个代码,用于计算异构列表中有多少个子列表具有山峰。

nrSubliste([], 0).
nrSubliste([H|T], R):-
    is_list(H),
    munteMain(H),!,
    nrSubliste(T, R1),
    R is R1 + 1.
nrSubliste([_|T], R):-
    nrSubliste(T, R).
Run Code Online (Sandbox Code Playgroud)

munteMain 验证线性列表是否具有山峰。

list prolog prolog-cut

7
推荐指数
1
解决办法
5632
查看次数

序言中最长的序列

我必须从Prolog中的列表中删除最长的质数序列。我是Prolog的新手,我找不到找到最长序列的方法...这是我到目前为止所做的:

divisible(X,Y):-
  0 is X mod Y.
divisible(X,Y):-
  X > Y + 1,
  divisible(X,Y+1).

is_prime(2).
is_prime(3).
is_prime(P):-
  integer(P),
  P>3,
  P mod 2 =\= 0,
  not(divisible(P,3)).
Run Code Online (Sandbox Code Playgroud)

这将从列表中删除素数。

removeP([],[]).
removeP([H],[H]):-
  not(is_prime(H)).
removeP([H|T],[H|L]):-
  not(is_prime(H)),
  removeP(T,L).
removeP([H|T],L):-
  is_prime(H),
  removeP(T,L).
Run Code Online (Sandbox Code Playgroud)

在这里,我试图找到最长的序列,但是我不知道下一步该怎么做。

longest([],[]).
longest([H],[H]):-
  is_prime(H).
longest([H],[]):-
  not(in_prime(H)).
longest([H|T],L):-
  ....
Run Code Online (Sandbox Code Playgroud)

list prolog sublist

5
推荐指数
0
解决办法
291
查看次数

标签 统计

list ×2

prolog ×2

prolog-cut ×1

sublist ×1