「関数型プログラミング」のScalaの学習(9)

参照透明性

  1. 同じへの入力は、常に同じ出力を得ます。
  2. F(X)及びパラメータxの関数は、基準透明体である場合、関数fは、純粋な関数です。

    参照透明性の例に違反

    ここに画像を挿入説明
    我々は明らかに同じ入力、2回目の呼び出しのためにそれを見ることができますappend()し、最初の呼び出しappend()の出力が異なる場合。

    純粋関数(純粋に性的機能)

    手段がないという副作用機能の

    副作用

    これは、状態の変化を意味します:
  3. グローバル変数を変更します。
  4. 例外を投げます
  5. IOの読み取りと書き込み
  6. 副作用の呼び出し機能

副作用の例

var x = 1
def xpulsy_v1(y: Int) = x + y
def xpulsy_v2(y: Int) = {x += y; x}

x
xpulsy_v1(2)
x

xpulsy_v2(2)
x

ここに画像を挿入説明
我々は明らかに呼び出す見ることができxplusy_v2、時間関数をxの値を変更し、副作用が生じ。

関数型プログラミングの利点

  1. 高い生産効率
  2. 推論のしやすさ
  3. 並列プログラミング

    変数に割り当てられている機能

    Scalaの構文は、変数に割り当てられた機能は、関数の後に追加しなければならないときに、指定のスペースアンダースコア

def sayHello(name: String) { println("Hello, " + name) }

。。。

メッセージ履歴を表示するには、スキャンコード、製品の完全なバージョンを取得します

ここに画像を挿入説明

おすすめ

転載: www.cnblogs.com/Alex458/p/12319233.html