私は反時計を使ってREPLを実行していますが、私はこれもLeiningenに気づきました。なぜVarを再定義することができますか(FP値が不変であることを前提とします)?
私はvarを2回定義するためにdefを呼び出すことができます。たとえば、
=> (def a 1)
#'fractal.core/a
=> a
1
=> (def a 2)
#'fractal.core/a
=> a
2
ClojureはFPであり、FPオブジェクトでは不変であると考えられます。私はこれをどのような意味で行うことができれば、不変ですか?
ありがとうございます。
厳密に言えば、Varの値は変更されていないので、* rebinding *(命令型言語で考える*シャドーイング)と呼ばれています。 –
@ om-nom-nomこれはシャドーイングのようなものではありません。必要に応じて再バインドを呼び出すことができますが、これとvarの値を変更することには特別な違いはありません。はい、varはまだ同じ値のセルを保持していますが、そのセルの内容は変更されています。これは通常は値を変更することによって意味されます。 – amalloy