Pelajari Pengaturcaraan Berfungsi: Gaya Pengekodan Ini Akan Menenangkan Fikiran Anda

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


Walaupun kebanyakan bahasa pengaturcaraan terdiri dari input, output dan variabel luaran yang dapat diset atau digunakan dari dalam fungsinya, pengaturcaraan fungsional mengelakkan ini.

Idea di sebalik pengaturcaraan fungsional adalah bahawa setiap kali fungsi dipanggil dengan parameter yang sama, ia harus mengembalikan nilai yang sama.

Apa yang Membuat Pengaturcaraan Fungsional “Fungsional”?

Pertimbangkan fungsi yang mengembalikan suhu semasa. Ia dilewatkan hanya satu pemboleh ubah yang menunjukkan sama ada suhu harus dikembalikan dalam darjah Celsius atau Fahrenheit.

Fungsi kemudian menggunakan logik dalaman untuk mengembalikan suhu semasa – mungkin dengan membaca sensor suhu. Ini tidak dianggap sebagai pengaturcaraan fungsional karena setiap kali fungsi digunakan, ia berpotensi mengembalikan nilai yang berbeda, bahkan ketika input fungsi sama.

Parameter Fungsi

Bahasa pengaturcaraan berfungsi mempunyai fungsi kelas pertama. Ini bermaksud fungsi dapat digunakan seolah-olah nilai yang dikembalikan.

Sebagai contoh, pertimbangkan fungsi, dua kali ganda (x), yang mengembalikan dua kali nilai parameter inputnya. Jadi double (2) akan kembali 4. Memandangkan itu adalah fungsi kelas pertama, kodnya, double (double (2)), akan sama dengan kod, double (4).

Seperti contohnya, ini membolehkan satu fungsi bersarang sebagai parameter yang lain dan seterusnya.

Bahasa pengaturcaraan fungsional juga membolehkan fungsi mengambil fungsi sebagai pemboleh ubah lulus. Perhatikan bahawa ini melibatkan fungsi itu sendiri dilalui, dan bukan hanya hasil fungsi tersebut.

Kegunaan biasa

Pengaturcaraan fungsional unggul dalam melaksanakan pemodelan matematik yang kompleks; atas sebab ini, salah satu penggunaan utama bahasa fungsional secara tradisional adalah akademik.

Banyak bahasa berfungsi juga unggul semasa melaksanakan pemprosesan selari. Ini disebabkan kemampuan mereka untuk memanfaatkan fungsi murni yang selalu mengembalikan nilai yang sama tanpa mengira urutan yang dijalankan.

Bahasa lain perlu risau tentang keadaan perlumbaan – di mana satu fungsi dijalankan sebelum pemboleh ubah yang digunakan ditetapkan ke nilai yang diharapkan.

Metodologi Berfungsi

Banyak bahasa pengaturcaraan yang tidak berfungsi dapat digunakan dengan metodologi pengaturcaraan fungsional.

Pendekatan pengembangan ini dapat memberikan sebahagian besar manfaat pengaturcaraan penting dan pengaturcaraan fungsional. Sebilangan faedah yang cenderung hilang adalah kebolehan terpadu untuk membantu menjaga kesucian membiarkan pemaju bertanggungjawab.

Sebilangan bahasa sebenarnya dirancang dengan gabungan metodologi bersama dengan pengaturcaraan fungsional yang menghilangkan sebahagian atau semua kekurangan ini.

Sejarah

Lambda Calculus boleh dikatakan bahasa komputer pertama, dan ia adalah bahasa yang berfungsi. Ia mula dibangunkan oleh Gereja Alonzo.

Menariknya, bahasa ini pertama kali dibuat pada tahun 1930-an – jauh sebelum komputer yang dapat diprogramkan wujud. Pada tahun 1958 John McCarthy, seorang profesor di Massachusetts Institute of Technology’s (MIT), membuat LISP, yang dimodelkan berdasarkan lambda kalkulus dan merupakan salah satu bahasa berfungsi yang paling penting.

Masih banyak versi LISP yang digunakan hari ini – ada yang lebih berfungsi daripada yang lain.

Bahasa yang Menyokong Pengaturcaraan Berfungsi

  • D dirancang selepas C ++ untuk mendapatkan semua faedah sambil menghilangkan kelemahan yang dirasakan serasi dengan C.

  • Elixir berasal dan duduk di atas Erlang menggunakan kemampuannya untuk membuat h

    dengan tegas
    aplikasi serentak sambil menjadikan bahasa lebih mudah untuk ditulis dan dikekalkan.

  • Erlang sangat berskala dan serentak menjadikannya ideal untuk telekomunikasi dan aplikasi lain yang menerima sejumlah besar data dalam urutan yang tidak dapat diramalkan.

  • F # adalah bahasa multi-paradigma sumber terbuka yang sering digunakan dalam

    .BERSIH
    kerangka. Ia biasanya digunakan untuk pengembangan perisian analitik yang cepat.

  • Haskell adalah bahasa berfungsi murni yang menggunakan Lambda Calculus.

  • ML digunakan dalam jenis aplikasi matematik, saintifik, kewangan, analitis dan lain-lain. Salah satu kelebihannya ialah membuat perisian untuk memanipulasi program lain.

  • OCaml atau Objective Caml, adalah bahasa bersumber terbuka dan bebas yang berdasarkan Caml. Ia cenderung untuk membuat program yang sangat ringan yang membantu mereka memuat dan berjalan lebih cepat daripada yang dibuat dalam bahasa lain.

  • Scala dirancang untuk disatukan dengan mudah ke dalam Java dan bahasa berorientasi objek lainnya. Scala memanfaatkan pengaturcaraan fungsional, memungkinkan untuk digunakan dalam aplikasi yang diedarkan dan bersamaan.

  • Skema berdasarkan sintaks LISP dan struktur ALGOL. Kerana kesederhanaannya, Skema digunakan sebagai pengenalan kepada rancangan program dalam banyak kursus sains komputer untuk menunjukkan beberapa asas pengaturcaraan komputer.

  • Swift dirancang dengan tujuan untuk bertolak ansur dengan kesalahan, cepat berkembang, dan ekspresif.

Sumber

Sumber pengaturcaraan fungsional biasanya tertumpu pada bahasa tertentu, seperti Scala. Tetapi walaupun mereka berada, mereka memberikan maklumat yang berharga. Oleh itu, jangan malu hanya kerana artikel atau buku menggunakan bahasa yang tidak anda gunakan.

Tutorial

  • Pengenalan Praktikal untuk Pengaturcaraan Fungsional: Perbincangan Mary Rose Cook mengenai penggunaan teknik pengaturcaraan fungsional dengan bahasa penting.

  • Asas Pengaturcaraan Fungsional: perbincangan teori yang baik mengenai pengaturcaraan fungsional.

  • Jangan Takut Daripada Pengaturcaraan Fungsional: adakah pengaturcaraan fungsional adalah “paradigma pengaturcaraan hipster mustachioed”? Cari di sini.

  • Pengenalan Pengaturcaraan Fungsional di Swift: pengenalan terperinci untuk pengaturcaraan fungsional menggunakan Swift.

  • Mengapa Semua Tutorial Pengaturcaraan Berfungsi Jadi Mathy? – perbincangan mengenai Stack Exchange yang patut dibaca.

Buku

  • Pengenalan Pengaturcaraan Fungsional Melalui Lambda Calculus (2011) oleh Greg Michaelson: pengenalan yang bermula pada awal.

  • Pemikiran Fungsional: Paradigm Over Syntax (2014) oleh Neal Ford: sebuah buku lanjutan mengenai asas pengaturcaraan fungsional.

  • The Magical World of Functional Programming: Bahagian I: Thinking Functional (2014) oleh K Anand Kumar: sebuah ebook pendek mengenai asas-asas pengaturcaraan fungsional.

  • Menjadi Fungsional (2014) oleh Joshua Backfield: pengenalan kepada pengaturcaraan fungsional untuk orang yang biasa dengan program penting dan berorientasikan objek.

Ringkasan

Walaupun pengaturcaraan fungsional sangat baik untuk beberapa aplikasi, banyak pengaturcara mendapati kemudahan bahasa penting, lebih mudah untuk membungkus kepala mereka.

Tetapi untuk pengekodan matematik dan lebih formal, pengaturcaraan fungsional adalah pilihan yang baik. Dan memahami prinsip pengaturcaraan fungsional dapat bermanfaat bagi semua pengaturcara.

Bacaan dan Sumber Lanjut

Kami mempunyai lebih banyak panduan, tutorial, dan infografik yang berkaitan dengan pengekodan dan pengembangan:

  • Pengaturcaraan F #: cari tahu mengenai pengaturcaraan fungsional dalam kerangka .NET.

  • Pengenalan dan Sumber Pengaturcaraan Erlang: bahasa berfungsi awal yang digunakan untuk membuat kod selari.

  • Pengenalan dan Sumber Swift: ini adalah salah satu bahasa seperti C terbaru. Masa depan pengaturcaraan? Cari di sini!

Kod Apa yang Perlu Anda Pelajari?

Keliru dengan bahasa pengaturcaraan apa yang harus anda pelajari untuk membuat kod? Lihat infografik kami, Kod Apa yang Harus Anda Pelajari?

Ia tidak hanya membincangkan berbagai aspek bahasa, tetapi juga menjawab pertanyaan penting seperti, “Berapa banyak wang yang akan saya buat untuk memprogram Java untuk mencari nafkah?”

Kod Apa yang Perlu Anda Pelajari?
Kod Apa yang Perlu Anda Pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me