[コトリン・ストディ06]0606
モジュラプログラミング
:関数は、基本データ型ではなく、入力および出力関数
:関数を引数として使用するには、純粋な関数の概念を満たす必要があります.
純関数の理解
✋🏻 副作用のない関数
:常に同じ入力パラメータに対して同じ値を出力/戻す関数
:値は予測可能で、決定性(確定性)がある
✋🏻 じゅんかんすうのじょうけん
:常に同じパラメータの同じ値を返します.
:関数の外部の状態は変更されません.(関数外部の変数の変更も含む)
:ラムダ式には純関数が必要
🤔 純粋な関数、なぜ使用しますか?
入力とコンテンツの分離とモジュール化により、再利用性が向上します.
:複数の関数と組み合わせても副作用はありません.
特定の状態に影響を与えず、並列作業時に安全です.
関数の値を追跡および予測できます.これにより、テストまたはデバッグが容易になります.
パラメータ、パラメータ、または戻り値(高次関数)に
茶食
レベル1オブジェクト(First Class Citizen)
高次関数
次に、高次関数の簡単な例を示します.
fun main() {
println(highFunc({x,y -> x+y}, 10, 20) //람다식, 정수형 변수 2개 선언
}
fun highFunc(sum: (Int, Int) -> Int, a:Int, b: Int){return sum(a,b)}
→highFunc関数を宣言するときにsumを関数として抽象化し、実際に使用するときにram多項式を使用して具体化します.fun main(){
println(highFunc(10,20){
x,y -> x+y
}
}
fun highFunc(a:Int, b: Int, sum: (Int, Int) -> Int):Int
{return sum(a,b)}
Reference
この問題について([コトリン・ストディ06]0606), 我々は、より多くの情報をここで見つけました https://velog.io/@ssook1222/코틀린-스터디-06-0606テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol