「マップ挿入ソート」が「マップマージソート」と等しくないのはなぜですか?


8

型理論ポッドキャストEP。3、Dan Licataは、すべての入力について、insertionsortとmergesortが同じ結果を与えるという事実は、3番目の関数への引数として高次関数として使用された場合、結果が等しいことを意味しない、つまりmap insertionsort、等しい必要がないと主張しmap mergesortます。

彼はこれを「関数、挿入ソートとマージソートが等しいので、あなたは知らないので」と説明していますが、それでもまだわかりません。

これはなぜですか?反例は素晴らしいでしょう!

回答:


10

それは、拡張性の公理、つまり、関数に対してそれを受け入れるかどうかに関係しています。

f,g:AB, ((x:A, f x=g x)f=g).

map f=map g

(x:A, f x=g x)xs:list A, map f xs=map g xs.
map f=map g

1
もう一度賛成したい。
Filip Haglund、2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.