A maioria dos algoritmos conhecidos é de primeira ordem, no sentido de que sua entrada e saída são dados "simples". Alguns são de segunda ordem de uma maneira trivial, por exemplo, classificação, hashtables ou funções map e fold: são parametrizadas por uma função, mas na verdade não fazem nada de interessante, exceto invocá-la em partes de outros dados de entrada.
Alguns também são de segunda ordem, mas um pouco mais interessantes:
- Fingertrees parametrizados por monoides
- Divisão de uma fingertree em um predicado monótono
- Algoritmos de soma de prefixos, novamente normalmente parametrizados por um monóide ou predicado etc.
Finalmente, alguns são "verdadeiramente" de ordem superior, no sentido mais interessante para mim:
- O combinador Y
- Listas de diferenças
Existem outros algoritmos não triviais de ordem superior?
Na tentativa de esclarecer minha pergunta, em "ordem superior não trivial", quero dizer "usar instalações de ordem superior do formalismo computacional de maneira crítica na interface e / ou implementação do algoritmo"