6
タスク:カスタムデータ型を作成してコンソールに出力できるようにしようとしています。私はまた、Haskellの自然順序付けを使ってそれをソートできるようにしたい。Haskellのカスタムデータ型について混乱しています
問題:今、私はこのコードをコンパイルすることはできません。次のエラーが発生します:No instance for (Show Person) arising from a use of 'print'
。私がこれまで持って何
は:
-- Omitted working selection-sort function
selection_sort_ord :: (Ord a) => [a] -> [a]
selection_sort_ord xs = selection_sort (<) xs
data Person = Person {
first_name :: String,
last_name :: String,
age :: Int }
main :: IO()
main = print $ print_person (Person "Paul" "Bouchon" 21)
よろしくお願いいたします。だからEqとOrdはPersonを自然にソートすることができるでしょうか? –
いいえ、 'Ord'インスタンス(' Eq'が必要)では、 'Data.List'の標準の' sort'がソートに利用できます。 –
そして 'selection_sort_ord'(上記)を使ってPersonの項目のリストを年齢の順に並べ替えるために、' instance'キーワードを使って自分自身の 'compare'関数を書いたければ、私のやり方に関する提案この? –