Большинство известных алгоритмов первого порядка в том смысле, что их ввод и вывод являются «простыми» данными. Некоторые из них являются вторым порядком тривиальным способом, например, сортировка, хеш-таблицы или функции map и fold: они параметризуются функцией, но на самом деле они не делают с ней ничего интересного, кроме как вызывают ее для фрагментов других входных данных.
Некоторые из них также второго порядка, но несколько интереснее:
- Пальцы, параметризованные моноидами
- Расщепление дерева пальцев на однообразный предикат
- Алгоритмы суммирования префиксов, опять же обычно параметризованные моноидом или предикатом и т. Д.
Наконец, некоторые из них «действительно» более высокого порядка в том смысле, который мне наиболее интересен:
- Y комбинатор
- Списки различий
Существуют ли другие нетривиальные алгоритмы высшего порядка?
В попытке прояснить мой вопрос, под «нетривиальным высшим порядком» я подразумеваю «использование средств вычислительного формализма более высокого порядка критически в интерфейсе и / или реализации алгоритма»