Functional Programming
4549 ワード
JavaScriptで関数式プログラミングを学ぶのテキストサンプルコードがSWIFTで置換されていることを確認および整理します.😆
Functional Programming
プログラミングパターンの1つ.もう1つのプログラミングモードは、関数プログラミングとは逆のコマンドプログラミングです.
Why use
safer, easier to debug/maintain
より安全で、デバッグとメンテナンスが容易です.
オブジェクト向けのプログラミングで未知のエラー(見つけにくいエラー)に遭遇した場合、関数式プログラミングが代替案になる可能性があります.
How use Do everything with functions Avoid side effects (use pure functions) Use Higher oder functions (functions can be inputs/outputs) Don't iterate (use map, filter, reduce) Avoid mutability (use immutable data) Do everything with functions
1朕関数型プログラミングはすべて関数で実現される.
次に、コマンド式で記述されたコードを関数式プログラミングに変換する例を示します.
2」純機能を実現する必要があります.
pure functionは,関数が周囲のグローバル変数に依存せず,関数パラメータとしての入力のみに依存して出力を返す関数である.
3π高次関数を用いた.
高次関数は、関数がオブジェクトのように伝達パラメータとして伝達されるか、関数の関数を返すことができることを示します.
関数内の関数は階層化されます.
4関数型プログラミングでは、
Avoid mutability
5πは不変のデータを作成し,可変性を避ける.
これを行うには、すべてのデータをコピーすると効率が低下する可能性があるため、HashMapまたはTreeデータ構造を利用する方法があります.
Functional Programming
プログラミングパターンの1つ.もう1つのプログラミングモードは、関数プログラミングとは逆のコマンドプログラミングです.
Why use
safer, easier to debug/maintain
より安全で、デバッグとメンテナンスが容易です.
オブジェクト向けのプログラミングで未知のエラー(見つけにくいエラー)に遭遇した場合、関数式プログラミングが代替案になる可能性があります.
How use
1朕関数型プログラミングはすべて関数で実現される.
次に、コマンド式で記述されたコードを関数式プログラミングに変換する例を示します.
// Not functional
let name = "Lena"
let greeting = "Hi, I'm "
print(greeting + name)
// Hi, I'm Lena
// Functional
func greet(name: String) -> String {
return "Hi, I'm \(name)"
}
print(greet(name: "Lena"))
// Hi, I'm Lena
Pure functions2」純機能を実現する必要があります.
pure functionは,関数が周囲のグローバル変数に依存せず,関数パラメータとしての入力のみに依存して出力を返す関数である.
// Not pure
let name = "Lena"
func greet() -> String {
return "Hi, I'm \(name)"
}
// Pure
func greet(name: String) -> String {
return "Hi, I'm \(name)"
}
Higher oder functions3π高次関数を用いた.
高次関数は、関数がオブジェクトのように伝達パラメータとして伝達されるか、関数の関数を返すことができることを示します.
関数内の関数は階層化されます.
4関数型プログラミングでは、
for
またはwhile
を使用するのと比較して、map
、filter
と同じ高次関数が使用される.Avoid mutability
5πは不変のデータを作成し,可変性を避ける.
これを行うには、すべてのデータをコピーすると効率が低下する可能性があるため、HashMapまたはTreeデータ構造を利用する方法があります.
Reference
この問題について(Functional Programming), 我々は、より多くの情報をここで見つけました https://velog.io/@lena_/Functional-Programmingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol