0

だから私の最初の質問は答えられ、それは理にかなっています. ソート後にリストの長さを出力できたのですが、元々はソート/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
4

1 に答える 1