clojure의 변수에 시계를 추가하고 리 바인드하면 시계가 동적으로 업데이트됩니다.LightTable Clojure 시계가 Atom에서 업데이트되지 않음
(def x "jlkfds")
x
위의 예에서 x는 항상 그 값을 반영합니다.
그러나 원자를 사용하여이 작업을 시도하면 운이 없습니다. instarepl이나 watch에 반영되도록 변경 사항을 다시 수행해야합니다.
(defonce y (atom 10))
@y *38*
(swap! y inc) *80*
위의 예에서는 deref를 실행하지 않고 스왑을 실행했기 때문에 동기화되지 않았습니다.
나를 혼란스럽게 한 것은 누군가 (Chris)가 마우스 포인터의 좌표를 동적으로 변경하는 것을 볼 수있는 Javascript 데모를 보았습니다. 나는이 기능을 가지고 있다는 생각을 정말 좋아한다. Clojure에서 같은 일을 할 수있는 방법이 있습니까?
좋아요?
http://youtube.com/watch?v=d8-b6QEN-rk
그들이보고있는 것은이 eval'd 때
나는 그들이보고있는 것이 eval'd 일 때만 시계가 업데이트된다는 것을 분명히 알게되었지만 나는 clojure : 에서 다음과 같은 것을 원한다 : http://www.chris-granger.com/2013/08/22/light-table-050/ https://www.youtube.com/watch?v=d8-b6QEN-kr – rhlvora
@rhlvora, ... http : //swannodette.github을 찾을 수 있습니다. .io/2014/02/27/눈 감아주기/재미있는 것. –
@rhlvora 라이트 테이블 _does_ 당신에게 그것을 제공합니다. 이 비디오에서 편집기의 맨 아래에있는 이벤트 리스너가 foo 함수를 호출합니다. 일반 Clojure에서 이와 비슷한 작업을 수행하려면 감시 된 값을 설정하는 함수를 계속 호출하는 일종의 마우스 움직임 수신기가 필요합니다. – gvickers