Pelajari Pemrograman Fungsional: Gaya Pengodean Ini Akan Memukau Anda

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


Sementara sebagian besar bahasa pemrograman terdiri dari input, output dan variabel eksternal yang dapat diatur atau digunakan dari dalam fungsinya, pemrograman fungsional menghindari ini.

Gagasan di balik pemrograman fungsional adalah bahwa setiap kali suatu fungsi dipanggil dengan parameter yang sama, ia harus mengembalikan nilai yang sama.

Apa yang Membuat Pemrograman Fungsional “Fungsional”?

Pertimbangkan fungsi yang mengembalikan suhu saat ini. Lulus hanya satu variabel yang menunjukkan apakah suhu harus dikembalikan dalam derajat Celcius atau Fahrenheit.

Fungsi ini kemudian menggunakan logika internal untuk mengembalikan suhu saat ini – mungkin dengan membaca sensor suhu. Ini tidak dianggap pemrograman fungsional karena setiap kali fungsi digunakan, ia memiliki potensi untuk mengembalikan nilai yang berbeda, bahkan ketika input fungsi sama..

Parameter fungsi

Bahasa pemrograman fungsional memiliki fungsi kelas satu. Ini berarti fungsi tersebut dapat digunakan seolah-olah itu adalah nilai yang dikembalikan.

Sebagai contoh, perhatikan fungsi, gandakan (x), yang mengembalikan dua kali nilai parameter inputnya. Jadi ganda (2) akan kembali 4. Mengingat bahwa itu adalah fungsi kelas satu, kode, ganda (ganda (2)), akan sama dengan kode, ganda (4).

Seperti contohnya, ini memungkinkan fungsi bersarang sebagai parameter fungsi lainnya dan seterusnya.

Bahasa pemrograman fungsional juga memungkinkan fungsi untuk mengambil fungsi sebagai variabel yang dikirimkan. Perhatikan bahwa ini melibatkan fungsi itu sendiri yang diteruskan, bukan hanya hasil fungsi.

Penggunaan umum

Pemrograman fungsional unggul dalam menerapkan pemodelan matematika yang kompleks; untuk alasan ini, salah satu penggunaan utama bahasa fungsional secara tradisional adalah akademik.

Banyak bahasa fungsional juga unggul saat menerapkan pemrosesan paralel. Ini karena kemampuan mereka untuk mengambil keuntungan dari fungsi-fungsi murni selalu mengembalikan nilai yang sama terlepas dari urutan mereka dijalankan.

Bahasa lain perlu khawatir tentang kondisi balapan – di mana satu fungsi dijalankan sebelum variabel yang digunakan diatur ke nilai yang diharapkan.

Metodologi Fungsional

Banyak bahasa pemrograman yang tidak fungsional dapat digunakan dengan metodologi pemrograman fungsional.

Pendekatan perkembangan ini dapat memberikan sebagian besar manfaat pemrograman imperatif dan pemrograman fungsional. Beberapa manfaat yang Anda cenderung kehilangan adalah kemampuan bawaan untuk membantu menjaga kemurnian meninggalkan pengembang dengan tanggung jawab itu.

Beberapa bahasa sebenarnya dirancang dengan hibrida metodologi bersama dengan pemrograman fungsional menghilangkan beberapa atau semua kelemahan ini.

Sejarah

Lambda Calculus bisa dibilang adalah bahasa komputer pertama, dan itu adalah bahasa fungsional. Ini pertama kali dikembangkan oleh Gereja Alonzo.

Menariknya, bahasa ini pertama kali diciptakan pada 1930-an – jauh sebelum komputer yang dapat diprogram ada. Pada tahun 1958 John McCarthy, seorang profesor di Massachusetts Institute of Technology (MIT), menciptakan LISP, yang meniru model lambda calculus dan merupakan salah satu bahasa fungsional terpenting.

Masih banyak versi LISP yang digunakan saat ini – beberapa lebih fungsional daripada yang lain.

Bahasa Yang Mendukung Pemrograman Fungsional

  • D dirancang setelah C ++ untuk mendapatkan semua manfaat sekaligus menghilangkan kelemahan yang dirasakan sebagai kompatibel dengan C.

  • Elixir diturunkan dan duduk di atas Erlang menggunakan kemampuannya untuk menciptakan h

    sungguh
    aplikasi bersamaan sekaligus membuat bahasa lebih mudah untuk ditulis dan dipelihara.

  • Erlang sangat skalabel dan bersamaan membuatnya ideal untuk telekomunikasi dan aplikasi lain yang menerima sejumlah besar data dalam urutan yang tidak dapat diprediksi.

  • F # adalah bahasa multi-paradigma open source yang sering digunakan dalam

    .BERSIH
    kerangka. Ini biasanya digunakan untuk pengembangan perangkat lunak analitis yang cepat.

  • Haskell adalah bahasa fungsional murni yang menggunakan Lambda Calculus.

  • ML digunakan dalam jenis aplikasi matematika, ilmiah, keuangan, analitis dan lainnya. Salah satu kelebihannya adalah membuat perangkat lunak untuk memanipulasi program lain.

  • OCaml atau Objective Caml, adalah bahasa bersumber terbuka dan bebas yang didasarkan pada Caml. Itu cenderung membuat program yang sangat ringan yang membantu mereka memuat dan menjalankan lebih cepat daripada yang dibuat dalam bahasa lain.

  • Scala dirancang agar mudah diintegrasikan ke dalam Java dan bahasa berorientasi objek lainnya. Scala mengambil keuntungan dari pemrograman fungsional, yang memungkinkannya untuk digunakan dalam aplikasi yang didistribusikan dan bersamaan.

  • Skema didasarkan pada sintaksis LISP dan struktur ALGOL. Karena kesederhanaannya, Skema digunakan sebagai pengantar desain program di banyak program ilmu komputer untuk menunjukkan beberapa dasar pemrograman komputer.

  • Swift dirancang dengan tujuan menjadi toleran terhadap kesalahan, cepat berkembang, dan ekspresif.

Sumber daya

Sumber daya pemrograman fungsional biasanya difokuskan pada bahasa tertentu, seperti Scala. Tetapi bahkan ketika mereka, mereka memberikan informasi berharga. Jadi jangan malu hanya karena sebuah artikel atau buku menggunakan bahasa yang tidak Anda gunakan.

Tutorial

  • Pengantar Praktis untuk Pemrograman Fungsional: Diskusi Mary Rose Cook tentang penggunaan teknik pemrograman fungsional dengan bahasa imperatif.

  • Dasar-Dasar Pemrograman Fungsional: diskusi teoretis yang baik tentang pemrograman fungsional.

  • Jangan Takut Pemrograman Fungsional: apakah pemrograman fungsional adalah “hipster paradigma pemrograman mustachioed”? Cari tahu di sini.

  • Pengantar Pemrograman Fungsional di Swift: pengantar rinci untuk pemrograman fungsional menggunakan Swift.

  • Mengapa Semua Tutorial Pemrograman Fungsional Begitu Buruk? – diskusi tentang Stack Exchange yang layak dibaca.

Buku

  • Pengantar Pemrograman Fungsional Melalui Lambda Calculus (2011) oleh Greg Michaelson: pengantar yang dimulai dari awal.

  • Pemikiran Fungsional: Paradigm Over Syntax (2014) oleh Neal Ford: buku lanjutan tentang dasar-dasar pemrograman fungsional.

  • Dunia Magis Pemrograman Fungsional: Bagian I: Thinking Functional (2014) oleh K Anand Kumar: ebook pendek tentang dasar-dasar pemrograman fungsional.

  • Becoming Functional (2014) oleh Joshua Backfield: pengantar pemrograman fungsional untuk orang-orang yang akrab dengan pemrograman imperatif dan berorientasi objek.

Ringkasan

Meskipun pemrograman fungsional sangat baik untuk beberapa aplikasi, banyak programmer menemukan kemudahan bahasa imperatif, lebih mudah untuk membungkus kepala mereka.

Tetapi untuk pengkodean matematika dan lebih formal, pemrograman fungsional adalah pilihan yang baik. Dan memahami prinsip-prinsip pemrograman fungsional dapat sangat bermanfaat bagi semua programmer.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki lebih banyak panduan, tutorial, dan infografis yang berkaitan dengan pengkodean dan pengembangan:

  • F # Programming: cari tahu tentang pemrograman fungsional dalam .NET framework.

  • Pengenalan dan Sumber Daya Pemrograman Erlang: bahasa fungsional awal yang digunakan untuk membuat kode paralel.

  • Pengantar dan Sumber Daya Swift: ini adalah salah satu bahasa seperti-C terbaru. Masa depan pemrograman? Cari tahu di sini!

Kode apa yang harus Anda pelajari?

Bingung tentang bahasa pemrograman apa yang harus Anda pelajari kode? Lihat infografis kami, Apa Kode Yang Harus Anda Pelajari?

Itu tidak hanya membahas berbagai aspek bahasa, itu menjawab pertanyaan-pertanyaan penting seperti, “Berapa banyak uang yang akan saya hasilkan untuk pemrograman Java sebagai mata pencaharian?”

Kode Apa Yang Harus Anda Pelajari?
Kode apa yang harus Anda pelajari?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map