-2

この質問から、講師が私に何を求めているのか理解できません。彼が私に何をしてほしいか説明してくれる人はいますか?

挿入ソート アルゴリズムの高次バージョンを定義します。それは定義関数です

insertBy :: Ord b => (a->b) -> a -> [a] -> [a] 

inssortBy :: Ord b => (a->b) -> [a] -> [a]

そして、このビットが私を混乱させた場所です: そのような inssort fl は、要素 x が elementyif fx < f y の前に来るようにリスト l をソートします。

4

2 に答える 2

1

数値を並べ替えていた場合、x < y の意味は明らかです。しかし、文字を並べ替えていたらどうでしょうか? それとも顧客?または、(コンピューターに対して)明確な順序付けのないものはありますか?

したがって、ソート手順の順序を定義する関数 f() を作成することになっています。その f() は、文字や顧客などを受け取り、コンピューターが実際に並べ替えることができるそれぞれの整数を返します。

少なくとも、それが問題の説明です。個人的には、x と y の 2 つの項目を受け入れ、x < y の場合にブール値を返す述語を設計したでしょう。でも、どーでもいい。

于 2011-04-01T12:48:43.037 に答える
0

このコードでは、挿入ソート アルゴリズムを書き直す必要がありますが、関数をパラメーターとして使用するため、高階関数になります。

タイプミスを含むこのコードは、特定の大学で現在予定されている作業の一部に由来するように思われることを指摘したいと思います。「挿入ソートアルゴリズム」を検索しているときにこのページを見つけました。ドキュメントも同様で、タイプミスが含まれています。

インターネットからコードを探すのは危険なビジネスです。スタックに配置したいくつかのクエリとは対照的に、挿入ソートアルゴリズムウィキペディアのエントリ、または講義スライドで提供されている Haskell コード (「挿入ソートアルゴリズム」と「高次関数」を探している) をお勧めします。オーバーフロー?

于 2011-04-05T00:51:10.410 に答える