What are Functional Programming Languages

what are functional programming languages.

What are Functional Programming Languages


What is Functional Programming


Functional programming languages ​​are ubiquitous, and most websites on the internet use them. Even you are already familiar with this term because it is often asked, but what are functional programming languages ​​and what are the advantages and disadvantages?


But before that, let's take a moment to define a programming paradigm before discussing what functional programming is.


Also Read: What Is Low-Code And How Does It Work?

TABLE OF CONTENTS

1. What is a Programming Paradigm?

2. What is Functional Programming?

3. Advantages and Disadvantages of Functional Programming

4. Advantages

5. Disadvantages

6. Examples of Functional Programming Languages

7. Conclusion


What is a Programming Paradigm?


Since computers are machines at their core, we need a good way to communicate with them. However, the more abstracts of ones and zeros we get, the more specialized a language is. This is why we have so many high-level languages, because they all function a little differently and are all suited for different tasks.Â


The meaning of programming paradigm is a way to categorize programming languages ​​based on their main theory or methodology for handling data. A language qualifies for a paradigm by having a number of defining principles. There are many programming paradigms, many of which overlap or contain other paradigms. The two main paradigms are functional and object-oriented, but there are many other ways of handling data that are not considered by these two paradigms.


What is Functional Programming?


Functional programming is one of the two main programming paradigms, next to object-oriented programming. In short, functional programming focuses on pure mathematical functions and immutable data, i.e. data that cannot be changed once created. It has no state, which means that the only thing that changes in a functional program is the input.


Karena tidak ada perubahan status dengan objek, dalam pemrograman functional kalian secara konseptual dapat mengubah urutan kode dan masih memiliki output yang sama. Seolah-olah kalian mengalikan delapan angka bersama, tidak masalah urutan apa yang kalian gandakan, kalian masih akan mencapai hasil yang sama.Â


Dalam pengertian ini, functional programming adalah semua tentang aliran. Input muncul di bagian atas dan hasilnya jatuh dari bawah. Ini berbanding terbalik dengan object-oriented programming, yang lebih merupakan mesin keadaan berubah, dengan objek yang unik dan bisa berubah.Â


Functional programmingl telah ada sedikit lebih lama dari object-oriented programming. Functional programming mungkin telah terjadi penurunan dalam beberapa generasi terakhir, tetapi baru-baru ini telah terjadi perubahan besar dengan adanya bahasa pemrograman JavaScript, yang merupakan paradigm-agnostic tetapi telah dianggap sebagai bahasa yang lebih functional daripada yang object-oriented.


Kelebihan Dan Kekurangan Functional Programming


Kelebihan


 1. Pure functions lebih mudah dipahami karena tidak mengubah status apa pun dan hanya bergantung pada input yang diberikan kepada mereka. Output apa pun yang mereka hasilkan adalah nilai pengembalian yang mereka berikan. Function signature mereka memberikan semua informasi tentang mereka yaitu jenis pengembalian dan argumen mereka.

 2. Kemampuan functional programming languages untuk memperlakukan fungsi sebagai nilai dan meneruskannya ke fungsi sebagai parameter membuat kode lebih mudah dibaca dan mudah dimengerti.

 3. Pengujian dan debugging lebih mudah. Karena pure functions hanya mengambil argumen dan menghasilkan output, mereka tidak menghasilkan perubahan apa pun yang tidak mengambil input atau menghasilkan beberapa output tersembunyi. Mereka menggunakan nilai yang tidak dapat diubah, sehingga menjadi lebih mudah untuk memeriksa beberapa masalah dalam program yang ditulis menggunakan pure functions.

 4. Ini digunakan untuk mengimplementasikan konkurensi / paralelisme karena pure functions tidak mengubah variabel atau data lain di luarnya.

 5. Ini mengadopsi evaluasi lazy yang menghindari evaluasi repeated karena nilai dievaluasi dan disimpan hanya ketika diperlukan.


Kekurangan


 1. Terkadang menulis pure functions dapat mengurangi keterbacaan kode.

 2. Menulis program dengan gaya rekursif daripada menggunakan loop dapat sedikit mengintimidasi.

 3. Menulis pure functions itu mudah tetapi menggabungkannya dengan rest of application dan I / O adalah tugas yang sulit.

 4. Nilai-nilai yang tidak dapat diubah dan rekursi dapat menyebabkan penurunan kinerja.


Contoh Functional Programming Languages


  * JavaScript – Meskipun JavaScript bukan bahasa yang sepenuhnya functional, JavaScript memang memiliki banyak fitur functional programming. Karena itu, pemrogram telah menggunakan functional programming dalam JavaScript lebih sering daripada sebelumnya karena dapat lebih bermanfaat dan stabil dalam situasi skrip tertentu daripada bahasa object-oriented.Â

  * Clojure – Ini merupakan bahasa functional programming yang kuat yang dibangun di atas Lsip, yang telah ada sejak tahun 1950-an. Ini berarti fungsional hingga ke akarnya. Ini berjalan pada platform Java dan dikompilasi ke bytecode JVM.


* Haskell – Haskell is another pure functional language, and is designed to solve real world problems, not academic problems. It's not as old as Lisp; it was created in the 1990s. It has been used for several popular projects, such as the Xmonad window manager.


Conclusion


So what is functional programming? Functional programming is a programming paradigm that existed before the advent of object-oriented programming. Basically, functional programming treats functions and data as immutable or immutable. In functional programming, functions must not change the original data or program state.

Hopefully, this article about What are Functional Programming Languages, gives you a little insight. Also, read an article about What Are OEM Products And Why Are They Cheaper? that you may need to know. Thank you.

Previous Post Next Post