Większość dobrze znanych algorytmów jest pierwszego rzędu, w tym sensie, że ich dane wejściowe i wyjściowe są danymi „prostymi”. Niektóre są drugiego rzędu w trywialny sposób, na przykład sortowanie, tablice skrótów lub funkcje mapowania i składania: są one parametryzowane przez funkcję, ale tak naprawdę nie robią z nią nic ciekawego oprócz wywoływania jej na innych danych wejściowych.
Niektóre są również drugiego rzędu, ale nieco bardziej interesujące:
- Palce parametryzowane przez monoidy
- Dzielenie palca na monotonne orzeczenie
- Algorytmy sumy prefiksów, ponownie zwykle parametryzowane przez monoid lub predykat itp.
Wreszcie, niektóre są „naprawdę” wyższego rzędu w sensie, który jest dla mnie najbardziej interesujący:
- Kombinator Y.
- Listy różnic
Czy istnieją inne nietrywialne algorytmy wyższego rzędu?
Próbując wyjaśnić moje pytanie, pod „nietrywialnym wyższym rzędem” mam na myśli „krytyczne wykorzystanie udogodnień formalizmu obliczeniowego w interfejsie i / lub implementacji algorytmu”