Mereka berbeda.
Fungsi kelas satu
Nilai-nilai dalam bahasa yang ditangani secara seragam disebut "kelas satu". Mereka dapat disimpan dalam struktur data, diteruskan sebagai argumen, atau digunakan dalam struktur kontrol.
Bahasa yang mendukung nilai dengan tipe fungsi, dan memperlakukannya sama dengan nilai non-fungsi, dapat dikatakan memiliki "fungsi kelas satu".
Fungsi urutan lebih tinggi
Salah satu konsekuensi dari memiliki fungsi kelas satu adalah bahwa Anda harus dapat melewati suatu fungsi sebagai argumen ke fungsi lain. Fungsi terakhir sekarang "urutan lebih tinggi". Ini adalah fungsi yang mengambil fungsi sebagai argumen.
Contoh kanonik adalah "peta"
map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
Artinya, dibutuhkan fungsi, dan array, dan mengembalikan array baru dengan fungsi yang diterapkan ke setiap elemen.
Bahasa fungsional - bahasa di mana fungsi adalah sarana utama untuk membangun program - semua memiliki fungsi kelas satu. Sebagian besar juga memiliki fungsi urutan yang lebih tinggi (pengecualian yang sangat jarang adalah bahasa seperti Excel, yang dapat dikatakan fungsional, tetapi bukan urutan yang lebih tinggi).