必ず「関数式プログラミング」を知っておく必要がありますか?


この記事は「Nomad Coders」のビデオコンテンツを元にまとめたものです

Intro


関数プログラミングとは何か、なぜそれを知っているのかを理解しましょう.🤗

かんすうしきプログラミング


開発者は関数式プログラミングを学ばなければならないと考えている.関数式プログラミングはコード作成スタイルと言える.いっそ関数型コードで作る言語もあります.それでも、この概念を知っていれば(覚えていれば)、どんな言語でコードを書いても役に立ちます.関数式プログラミングを学習し,プログラミング問題を解決する際に有用な新しい観点と新しい方法を得ることができる.新しい考え方を学ぶ.関数式のプログラミングに従ってコードを記述すると、きれいなコードを記述することができ、エラーを隠すことは容易ではありません.すでに良好な技術と経験を持つ開発者は次第に関数式プログラミング言語を使用している.
実際に関数プログラミングを理解することは困難である可能性がある.これは、関数プログラミングの多くの説明が概念の定義に集中しているからである.(ex.純度、不変性、副作用など...)これらの概念を定義するだけで、開発者になぜ良いのか説明しません.符号化の過程で経験したことがない限り、不可知である.歴史、概念、正義だけを学ぶのは正しく理解できない.コードを比較して、どのような違いとメリットとデメリットがあるかを見てみましょう.

コマンドコードと宣言コードの違い

  • コマンドコード
  • Make me a sandwich
  • 宣言コード
  • 1. bread toast
    2. apple + cheese + tomato cut
    3. com bine
    4. done! 
    宣言式(Declarative)コードは、必要な説明に従ってコードを記述し、必要な結果を得る.CSSは宣言型言語です.declarative
    body {
    	color: red
    }
    宣言コードは、宣言に必要な結果値です.コマンド・コードは、その結果値をどのように達成するかについてです.

    コードの例


    テキスト文字列からスペースを削除し、コードをハート記号で置き換えてみます.

    コマンドタイプ

    function spaceToHeart(text) {
      let result = "";
      for (let i = 0; i < text.length; i++) {
        if (text[i] === " ") {
        	result += "하트";
        } else {
          result += text[i];
        }
      }
      return result;
    }

    宣言

    function spaceToHeart(text) {
      return text.replaceAll(" ", "하트");
    }
    replaceAll()メソッドを使用します.この2つのコードを比較すると、宣言コードは読みやすく、関数の役割を理解しやすくなります.replaceAll関数の内部操作にはコマンド型コードがあります.すべての宣言型コードはコマンド型コードの上に書かれていると言える.しかし,開発者はコマンドコードの代わりに関数を利用することができ,コマンドコード方式を回避することができる.
    コマンド方式では、コードが長くなる以外に、ニーズの実現は私たちの開発者に依存するので、自分の意思でコードを書くと、エラーやエラーが発生しやすいという問題があります.チームメイトたちも理解しにくいかもしれません.この関数が正確に何をするかを行ごとによく読みます.
    function checkForOdd(item) {
      return item % 2 === 0;
    }
    
    fu nction removeOdd(items) {
      return items.filter(checkForOdd);
    }
    filter関数は、条件を通過するすべての要素を含む配列を返します.アレイに適用するフィルタが何であるかを説明しただけですが、どのように適用するかは重要ではありません.

    conclusion


    個人的にはなるべく宣言型を多く使いたいと思います.宣言型が好きではない人もいます.すべてやフィルターの代わりに事前に理解する必要があるからです.しかし、いつものように、それぞれの業務に適したツールを使うことが重要です.
    https://www.youtube.com/watch?v=7aEQLvvnQIY