Python-関数式プログラミング

2578 ワード


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


関数プログラミングは、ほとんどのものを純粋な関数に分割して問題を解決する方法であり、関数を記述することで小さな問題を解決し、可読性を高め、メンテナンスを容易にする.
  • 関数は、他の関数のパラメータとして渡すことができる.(=パラメータ)
  • 関数は変数に割り当てることができる.
  • 関数は、他の関数の結果として返すことができる.(=その他の関数の戻り値)
  • 関数は、他の関数のパラメータとして渡すことができます。

    # 에러메시지를 출력하는 함수
    >>> def error_message(format_func, msg):
        print(format_func(msg))
    
    # 단어의 첫글자만 대문자로 만드는 함수
    >>> def to_upper(msg):
        return " ".join(word.capitalize() for word in msg.split())
    2つの関数が作成されました.
    >>> msg = "you have limited access"
    >>> error_message(to_upper, msg)
    
    You have Limited Acces

    関数は変数に割り当てることができます。


    パラメータとして渡すことができるという意味は変数として割り当てることができるということです.コールバック関数のようです.キーワードパラメータに関数を割り当てることができます.
    >>> def france():
        print("bonjour")
         
    >>> def italy(): 
        print('ciao')
    上にはprintの値を出力する一般的な関数があります.helloという名前の変数はfrance()関数を指定します.
    >>> hello = france
    >>> print(hello)
    
    <function france at 0x7f72d4360710>
    helloは現在、関数のように使用できます.helloを出力するとfrance()関数が表示されます.
    ハローの資料型も機能で出てきます!
    >>> hello()
    
    bonjour
    >>> print(type(hello))
    
    <class 'function'>

    関数は、他の関数の結果として返すことができます。


    最後の特徴は、関数の戻り値として関数を使用できることです.
    >>> def func1(x):
        return x**2
        
    >>> def func2():
    	return func1
    入力値の平方にfunc 1を乗算し、func 2にfunc 1を返す関数を作成しました.
    >>> print(func1(3))
    >>> print(func2()(3))
    
    9
    9
    func 1とfunc 2は同じ値を返します.関数は他の関数の結果として出力されます.
    関数プログラミングは、すべてのコンテンツをオブジェクトとして表します.関数もオブジェクトなので、関数を値として指定し、他の関数の欠落した値を返すことができます.

    関数式プログラミング哲学

  • に変更可能な状態を不変の状態にし、エラーを解消します.
    すべては客体だ.
  • コードを簡略化し、可読性を向上させ、実現する論理に集中する.
  • よりも効率的な同期タスク