官术网_书友最值得收藏!

Pure function

The definition of pure function says that if the return value of a function is completely dependent on its arguments/parameters, then this function may be referred to as a pure function. So, if we declare a function as fun func1(x:Int):Int, then its return value will be strictly dependent on its argument x; say, if you call func1 with a value of 3 twice, then, for both the times, its return value will be the same. A pure function can be a lambda or a named function as well. In the previous example, the first lambda expression was a pure function but not the second one, as for the second one, its return value can be different at different times with the same value passed to it. Let's look at the following example to understand it better:

    fun square(n:Int):Int {//(1) 
      return n*n 
    } 
 
    fun main(args: Array<String>) { 
      println("named pure func square = ${square(3)}") 
      val qube = {n:Int -> n*n*n}//(2) 
      println("lambda pure func qube = ${qube(3)}") 
    } 

Both the functions, (1) and (2), here are pure functions–one is named, while the other is lambda. If you pass the value 3 to any of the functions n times, their return value will be the same for each time. Pure functions don't have side effects.

Side effects: A function or expression is said to have a side effect if it modifies some state outside its scope or has an observable interaction with its calling functions or the outside world besides returning a value.
Source–Wikipedia https://en.wikipedia.org/wiki/Side_effect_(computer_science).

It is to note that, as we said earlier, pure functions have nothing to do with lambda expressions, their definitions are completely different.

The following is the output:

named pure func square = 9
lambda pure func qube = 27 
主站蜘蛛池模板: 三穗县| 邮箱| 辽源市| 阿拉尔市| 冀州市| 涿州市| 岑巩县| 锦州市| 巴楚县| 潢川县| 分宜县| 滦南县| 永川市| 华安县| 济宁市| 井陉县| 磐安县| 咸宁市| 泸定县| 山西省| 邓州市| 托克逊县| 抚顺县| 西林县| 论坛| 山阴县| 峡江县| 曲阜市| 六枝特区| 洛宁县| 德昌县| 昂仁县| 伊吾县| 台中县| 吐鲁番市| 霍林郭勒市| 安龙县| 时尚| 兴文县| 若尔盖县| 大悟县|