Tôi đã hiểu rằng từ lâu trước khi Haskell, O'Caml hoặc LISP, các hàm bậc cao hơn là một môn học nghiên cứu và trong toán học, Schönfinkel (năm 1967) và Haskell Curry (năm 1968) đã áp dụng các kỹ thuật như cà ri, nhưng điều đó là trước khi nó có sẵn trong bất kỳ ngôn ngữ lập trình.
Scheme, theo Wikipedia , là ngôn ngữ đầu tiên giới thiệu các chức năng bậc cao thích hợp là công dân hạng nhất, nhưng có ai chúng ta có thể gán ý tưởng ban đầu không? Có lẽ Alonzo Church, người đã phát minh ra phép tính lambda vào những năm 1930? Cụ thể hơn, ai đã đưa ra định nghĩa sau, mà tôi đã thấy trong các diễn giải khác nhau xung quanh trong một số sách và tài nguyên trực tuyến?
Một hàm được coi là có thứ tự cao hơn khi nó lấy một hàm khác làm đối số hoặc khi nó trả về một hàm. Bất kỳ hàm nào không lấy các hàm làm đối số hoặc làm kiểu trả về được gọi là hàm thứ tự đầu tiên.