Довольно новый для clojure, так что будьте добрыми.Почему моя карта не обновляется?
(def state {:currentPosition "1"})
(while (not= (state :currentPosition) "2") ; this is true
(assoc state :currentPosition "2") ;
)
Это вызывает бесконечный цикл, и он не запускается, но я не понимаю, почему. Условие
(not= (state :currentPosition) "2")
верно
поэтому цикл начинается, то внутри цикла, я обновляет состояние. Почему конец петли и не закрывает светлый стол? Спасибо
Бен, ответ Петра правильный, учитывая то, что вы специально задали. Вы можете это знать, но то, что вы делаете, не идиоматично. (Иногда вам все равно нужно делать такие вещи, поэтому атомы существуют.) Хорошо, что вы делаете так, как вы привыкли делать это, когда вы впервые изучаете язык, но вы захотите изучить Clojure- стиль стратегии кодирования довольно быстро. Сначала это может быть неловко, но как только вы привыкнете к функциональному программированию, это красиво и весело (imho). Если я расскажу вам то, что вы уже слышали, просто игнорируйте этот комментарий. – Mars
Я полностью согласен, я пытаюсь запрограммировать «нормально». Это просто реальное большое изменение в том, что я привык к lol – Ben