La mayoría de los algoritmos conocidos son de primer orden, en el sentido de que su entrada y salida son datos "simples". Algunos son de segundo orden de una manera trivial, por ejemplo, la clasificación, las tablas hash o las funciones de mapa y plegado: están parametrizados por una función, pero en realidad no hacen nada interesante excepto invocarlo en otros datos de entrada.
Algunos también son de segundo orden pero algo más interesantes:
- Yemas de los dedos parametrizadas por monoides
- Dividir un dedo en un predicado monótono
- Algoritmos de suma de prefijos, nuevamente parametrizados por un monoide o un predicado, etc.
Finalmente, algunos son "verdaderamente" de orden superior en el sentido que es más interesante para mí:
- El combinador Y
- Listas de diferencias
¿Existen otros algoritmos no triviales de orden superior?
En un intento por aclarar mi pregunta, bajo "orden superior no trivial" me refiero a "usar facilidades de orden superior del formalismo computacional de manera crítica en la interfaz y / o implementación del algoritmo"