Satu hal yang sangat penting untuk pertanyaan ini (dan jawabannya) adalah sebagai berikut: Apa sih pemrograman fungsional, dan apa sifat paling penting dari itu. Saya akan mencoba memberikan pandangan saya tentang itu:
Pemrograman fungsional sangat mirip menulis matematika di papan tulis. Saat Anda menulis persamaan di papan tulis, Anda tidak memikirkan perintah eksekusi. Tidak ada mutasi. Anda tidak kembali pada hari berikutnya dan melihatnya, dan ketika Anda membuat perhitungan lagi, Anda mendapatkan hasil yang berbeda (atau Anda mungkin, jika Anda memiliki kopi segar :)). Pada dasarnya, apa yang ada di papan tulis ada di sana, dan jawabannya sudah ada di sana ketika Anda mulai menuliskan sesuatu, Anda belum menyadari apa itu.
Pemrograman fungsional banyak seperti itu; Anda tidak mengubah banyak hal, Anda hanya mengevaluasi persamaan (atau dalam hal ini, "program") dan mencari tahu apa jawabannya. Program itu masih ada, tidak dimodifikasi. Sama dengan data.
Saya akan memberi peringkat berikut sebagai fitur paling penting dari pemrograman fungsional: a) transparansi referensial - jika Anda mengevaluasi pernyataan yang sama di waktu dan tempat lain, tetapi dengan nilai variabel yang sama, itu tetap berarti sama. b) tidak ada efek samping - tidak peduli berapa lama Anda menatap papan tulis, persamaan yang dilihat orang lain dengan papan tulis lain tidak akan berubah secara tidak sengaja. c) fungsi adalah nilai juga. yang dapat diteruskan dan diterapkan dengan, atau ke, variabel lain. d) komposisi fungsi, Anda dapat melakukan h = g · f dan dengan demikian mendefinisikan fungsi baru h (..) yang setara dengan memanggil g (f (..)).
Daftar ini dalam urutan prioritas saya, jadi transparansi referensial adalah yang paling penting, diikuti tanpa efek samping.
Sekarang, jika Anda membaca python dan memeriksa seberapa baik bahasa dan perpustakaan mendukung, dan menjamin, aspek-aspek ini - maka Anda berada di jalan yang baik untuk menjawab pertanyaan Anda sendiri.