簡體   English   中英

Prolog 反向前排成員名單

[英]Prolog reverse front members of a list

在 Prolog 中,我必須在給定編號(列表成員)的情況下反轉列表的一部分,直到列表被反轉。 例如:

?- reverse_front(2,[3,2,4,1,5,6],L)。 L=[2,3,4,1,5,6]

數字 2 之前的列表(包括 2)被反轉,然后附加到剩余的列表中......

?- reverse_front(4,[9,3,2,4,1,5],L)。 L = [4,2,3,9,1,5]

?- reverse_front(1,[3,2,4,1,6,5],L)。 L = [1,4,2,3,6,5]

該解決方案可以使用 reverse/2 和 append/3 來完成。

你知道怎么做嗎?

是的,您可以使用reverse/2append/3來實現這一點。

像這樣的東西:

reverse_front(Item, List, NList):-
  append(L1, [Item|L2], List),
  reverse(L1, RL1),
  append([Item|RL1], L2, NList).

樣品運行:

?- reverse_front(4,[9,3,2,4,1,5],L).
L = [4, 2, 3, 9, 1, 5] ;
false.

?- reverse_front(1,[3,2,4,1,6,5],L).
L = [1, 4, 2, 3, 6, 5] ;
false.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM