Ada perbedaan. Ketika Anda mengatakan bahwa suatu bahasa memiliki fungsi kelas satu, itu berarti bahwa bahasa tersebut memperlakukan fungsi sebagai nilai - bahwa Anda dapat menetapkan suatu fungsi ke dalam suatu variabel, menyebarkannya, dll. Fungsi tingkat tinggi adalah fungsi yang bekerja pada fungsi lain, artinya bahwa mereka mengambil satu atau lebih fungsi sebagai argumen dan juga dapat mengembalikan fungsi.
Konsep "orde tinggi" dapat diterapkan ke fungsi secara umum, seperti fungsi dalam arti matematika. Konsep "kelas satu" hanya berkaitan dengan fungsi-fungsi dalam bahasa pemrograman. Ini jarang digunakan ketika merujuk ke suatu fungsi, seperti "fungsi kelas satu". Adalah jauh lebih umum untuk mengatakan bahwa “suatu bahasa memiliki / belum mendukung fungsi kelas satu”.
Kedua hal ini sangat terkait, karena sulit membayangkan bahasa dengan fungsi kelas satu yang tidak juga akan mendukung fungsi tingkat tinggi, dan sebaliknya bahasa dengan fungsi tingkat tinggi tetapi tanpa dukungan fungsi kelas satu.
int
atauchar
, dalam arti bahwa mereka tidak dapat didefinisikan secara eksplisit (oleh badan fungsi) di mana pun Anda inginkan.Fungsi kelas satu adalah fungsi yang diperlakukan seperti objek (atau dapat ditugaskan ke variabel).
Fungsi urutan lebih tinggi adalah fungsi yang mengambil setidaknya satu fungsi kelas pertama sebagai parameter, atau mengembalikan setidaknya satu fungsi kelas satu.
sumber
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"
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).
sumber
Selain jawaban sebelumnya, perhatikan bahwa bahasa dengan fungsi kelas satu secara otomatis memungkinkan ekspresi fungsi tingkat tinggi (karena Anda dapat meneruskan fungsi sebagai parameter seperti nilai lainnya).
Di sisi lain, Anda dapat membayangkan bahasa yang mendukung fungsi tingkat tinggi, tetapi jangan membuat fungsi kelas satu (dan di mana parameter yang merupakan fungsi diperlakukan secara khusus, dan berbeda dari parameter nilai "biasa").
Jadi kehadiran fungsi kelas satu (sebagai fitur bahasa) menyiratkan adanya fungsi tingkat tinggi, tetapi tidak sebaliknya.
sumber
Fungsi Kelas Satu dapat:
Fungsi Orde Tinggi adalah fungsi yang mengembalikan fungsi lain.
Sebagai contoh:
sumber
Fungsi kelas pertama berarti segala sesuatu yang dapat Anda lakukan dengan tipe lain (variabel, boolean, angka ...), Anda dapat melakukannya dengan fungsi.
Misalnya Tetapkan mereka ke variabel, sebarkan di sekitar, buat dengan cepat.
sumber