binding
양식은 클로저에서 리 바인딩 가능 동적 범위 지정을 허용한다는 것을 알고 있습니다. 지금까지 내가 본 적이있는 유일한 용도는 print
과 같은 I/O와 같습니다. *out*
은 그 당시의 작가에게 리바운드됩니다.클로저에 '바인딩'을 사용하는 좋은 예는 무엇입니까?
다른 설비가 실제로 작동하지 않는 binding
의 힘을 실제로 활용하는 예제를보고 싶습니다. 개인적으로 나는 모든 기능에 사용자가 제공 한 객체를 돌아 다니는 것이 정말 지루한 경우에만 사용했습니다. 기본적으로 헬퍼 함수가 사용하는 컨텍스트를 만드는 중입니다. (이 경우 When should one use the temporarily-rebind-a-special-var idiom in Clojure?과 유사합니다.) 더 구체적으로 말하면, 사용자가 *db*
var에 대한 동적 바인딩을 작성하여 데이터베이스 기능이 무엇을 조작해야하는지 알 수있게하는 것입니다. 이 기능은 사용자가 데이터베이스 함수에 많은 중첩 호출을 작성해야 할 때 특히 유용합니다. 일반적으로 일을 더 쉽게하기 위해 매크로를 작성해야하지만, 사용자에게 그렇게하도록 요구하는 것은 좋지 않습니다. 즉, 가능한 한 많이하는 것을 피하려고합니다.
복사하여 내 코드에 통합 할 수있는 '바인딩'의 다른 유용한 사용 사례는 무엇입니까?
모두에게 좋은 답변입니다. 다른 사람이 찌르는 경우를 대비하여 대답을 선택하기 전에 며칠 더 남겨 두겠습니다. – bmillare