だから私の最初の質問は答えられ、それは理にかなっています. ソート後にリストの長さを出力できたのですが、元々はソート/0にio:format関数を使う方法としてお願いしていました。しかし、私の次のフォローアップは、それを sort/1 で使用する方法ですか? 私はそれを与えるためにそれを解決することができましたが、再帰中にそれを与えているので、複数の行を取得していて間違っています。私の質問は、クイックソートが完了したら、io:format をどのように実行するかです (また、リストに繰り返しがないようにしたいことにも注意してください)。下?
ここに私が持っているものと得ているものがあります:
-module(list).
-export([sort/1]).
sort([]) -> [];
sort([First|Rest]) ->
io:format("~nThe length of the list is ~w~n", [length([First]++Rest)])),
sort([ X || X <- Rest, X < First]) ++
[First] ++
sort([ X || X <- Rest, X > First]).
そして出力:
56> list:sort([2,2,2,3,3,3,1,1,8,6]).
The length of the list is 10
The length of the list is 2
The length of the list is 5
The length of the list is 2
The length of the list is 1
[1,2,3,6,8]
したがって、重複のないソートされたリストは正しいですが、そこに io:format 関数をどのように合わせてこのように表示するのですか?
56> list:sort([2,2,2,3,3,3,1,1,8,6]).
[1,2,3,6,8]
The length of the list is 5