Saya telah mencoba mempelajari pemrograman fungsional dan sebagian besar tutorial yang saya temukan menggunakan matematika sebagai contoh untuk konstruksi yang lebih rumit (bahkan yang sederhana dalam beberapa kasus). Kenapa ini? Saya akan membayangkan sesuatu yang lebih mudah dapat digunakan. Ini membuatnya sulit untuk dipelajari.
Info Latar Belakang: Saya telah menulis perangkat lunak selama 12 tahun. Saya memahami beberapa konsep seperti penutupan, fungsi sebagai warga negara kelas satu, dan obat generik. Saya mungkin mengalami masalah dengan fungsi tingkat tinggi di beberapa tingkat lanjut, tetapi saya ingin percaya bahwa saya memiliki pemahaman dasar. Monads menggigitku di pantat, dan pada titik ini aku belum bisa melewati itu (aku yakin pada akhirnya aku akan melakukannya, karena aku gigih).
sumber
Jawaban:
Mereka menggunakan matematika karena Pemrograman Fungsional sangat baik dalam memodelkan konstruksi matematika dan sangat terikat dengan konsep matematika, khususnya Lambda Calculus. Juga karena I / O biasanya merupakan subjek yang cukup sulit dan maju dalam banyak bahasa matematika paradigma fungsional melalui REPL dari berbagai bahasa menjadi cara yang baik untuk mengajar bahasa pada awalnya.
Karena Pemrograman Fungsional memperlakukan Fungsi sebagai konstruksi kelas satu dalam bahasa pemrograman, pembuatan fungsi menjadi sangat penting. Oleh karena itu matematika yang lebih tinggi menjadi sangat penting terutama teori grafik.
Bahasa Imperatif sama matematikanya tetapi semuanya aritmatika pada dasarnya karena mereka lebih dekat ke mesin yang hanya bisa menambahkan saja. Bahasa fungsional dengan abstraksi yang lebih tinggi cenderung lebih ke arah matematika. Penggunaan umum di dunia akademis juga tidak membantu ketika mereka terbiasa dan dengan demikian diajarkan oleh orang-orang yang tahu banyak matematika dan mengajar orang-orang yang diharapkan belajar banyak matematika. Jadi mungkin untuk "membodohi" sehingga untuk berbicara tetapi tidak mungkin diberikan faktor-faktor ini.
http://learnyouahaskell.com/ - Mungkin salah satu pengantar paling lembut untuk Pemrograman Fungsional, saya periksa dua kali dan tidak ada yang melampaui teori aljabar dan grafik dasar di sana.
sumber
Ada banyak alasan, dan semuanya terkait:
Juga, FP tidak lebih matematik daripada paradigma lain, tetapi konsep-konsep kunci (berfungsi sebagai warga negara kelas satu, fungsi tingkat tinggi, penutupan, dan kemurnian) membutuhkan pola pikir tertentu. Pada titik tertentu, pikiran Anda harus "klik"; jika Anda memahami 4 gagasan inti ini, sisanya kemungkinan akan semudah paradigma lainnya.
sumber
Itu karena pada dasarnya, pemrograman komputer adalah matematika. Bahasa fungsional dirancang dengan pemikiran ini dan inilah mengapa banyak tutorial difokuskan pada matematika.
Ini hanya sulit untuk dipelajari jika Anda tidak terbiasa berpikir pemrograman komputer memiliki dasar matematika.
sumber
Saya pikir "The Little Schemer" adalah pengantar yang luar biasa untuk pemrograman fungsional dan sama sekali tidak matematika. Itu tidak masuk ke Monads, jadi mungkin terlalu mendasar untuk selera Anda, tetapi melakukan turunan dari Y-combinator menjelang akhir.
Saya baru-baru ini melewatinya setelah tidak melakukan pemrograman fungsional sejak kuliah 12 tahun yang lalu, dan itu adalah penyegaran yang hebat, saya pasti merasa siap untuk menangani hal-hal yang lebih maju setelah mengerjakan sebagian besar masalah dalam buku menggunakan Racket.
sumber