JavaScript関数式プログラミング


関数式プログラミングの概念


関数プログラミングは、関数の組合せでタスクを実行することを意味します.

以下に、関数プログラミングの首都コードを説明します.
f1 = encrypt1;
f2 = encrypt2;
f3 = encrypt3;
特定の文字列の複数の関数を暗号化し、入力値が不確定で、異なる暗号化アルゴリズムしかありません.
pure_value = 'kim'
encrypted_value = get_encrypted(x);
pure valueは暗号化する文字列を受け入れ、encrypted valueは暗号化された文字列を受け入れ、get encrypted()は暗号化関数を受け入れ、入力した関数でpure valueを暗号化して返します.
次のようになります.
encrypted_value = get_encrypted(f1);
ここでpure valueは、タスクに必要なデータであり、タスクの実行中は変わらない.逆に、f 1、f 2、f 3は、純粋な関数purefunctionと呼ばれる外部(ここではpure value)に何の影響もない関数である.外部に影響しないので、他の作業で使用しても問題ありません.
また、パラメータまたは戻り値の関数として関数を用いることができる関数を高次関数high-order関数と呼ぶ.例ではget encrypted()です.
これらの概念実装関数を用いることで,より高いレベルのモジュール化を実現できる.

JavaScriptでの関数式プログラミングの例


JAvascriptは関数の1級オブジェクトであり、モジュールを実現するために関数式のプログラミングを行うことができます.上記の例を実施すると、以下のようになる.
var f1 = function(input) {
    var result;
    /* 암호화 작업 수행 */
    result = 1;
    return result;
}

var get_encrypted = function(func) {
    var pure_value = 'kim';

    return function(){
        return func(pure_value);
    }
}

var encrypted_value = get_encrypted(f1)();
注:宋亨洙、高賢俊、Inside JavaScript(2014)