2017-05-16 23 views
1

リストを順序付きリストに分割するソリューションがあれば、本当に感謝しています。要素の順序は、入力リストと同じでなければなりません。 私はPrologでいくつかの仕事をしましたが、それははるかに簡単でした。今どこから始めたらいいのか分かりません。 [5,4,2,8,3,1,6,9,5]→[5,4,2]、[8,3,1]、[6]、[9,5] 。SWI-Prologはリストを順序付きリストに分割します

+2

'ordered reduced list'を定義してください。そこに複製が許可されていますか?例えば。 '[9,5,5,1]→[9,5]、[5,1]'または '[9,5,5,1]→[9,5,5,1]'? –

+0

あなたに完全な質問をしてくれて申し訳ありません。 [9,5,5,1] - > [9,5,5,1]、重複は許可されています – RajuSingh

+1

あなたが持っているものは質問ではなく、誰かがあなたのコードを書くための要求です。このサイトについてあなたが試したことを示して、どこにいらっしゃっているのか特定の質問をしてください。どこから始めるべきかわからない場合は、Prologチュートリアルをお勧めします。[99 Prolog Problems](http://www.ic.unicamp.br/~meidanis/courses/mc336/ 2009s2/prolog/problemas /)で、リスト処理に焦点を当てています。 – lurker

答えて

0

ここでは、CapelliC answerに関しては、降順でほぼ同じパターンマッチングを使用できるはずです。

+0

ありがとうございます! – RajuSingh

0
'ascending([A], [[A]]). 
ascending([A,B|T], R) :- 
    (A < B -> R = [[A],P|Q] ; P = [M|N], R = [[A,M|N]|Q]), 
    ascending([B|T], [P|Q]).' 
関連する問題