Warum ist "map insertionsort" nicht gleich "map mergesort"?


8

In der Typentheorie Podcast ep. 3 , Dan Licata behauptet, dass die Tatsache, dass Insertionsort und Mergesort für jede Eingabe das gleiche Ergebnis liefern, nicht bedeutet, dass das Ergebnis gleich wäre, wenn es als Funktionen höherer Ordnung als Argumente für eine dritte Funktion verwendet würde, dh map insertionsortnicht gleich sein muss map mergesort.

Er erklärt dies mit "weil Sie nicht wissen, dass Insertionsort und Mergesort gleich sind, da Funktionen gleich sind", aber ich verstehe es immer noch nicht.

Warum ist das so? Ein Gegenbeispiel wäre toll!

Antworten:


10

Es hat mit dem Axiom der Extensionalität zu tun , dh ob Sie es für Funktionen akzeptieren oder nicht.

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
Ich möchte dies noch einmal positiv bewerten.
Filip Haglund
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.