Подтвердить что ты не робот

В clojure, почему комментарий блока, содержащий URL-адрес, генерирует исключение?

Почему следующее не работает? Вот почему он генерирует исключение?:

(comment 

Replicate a Sequence
http://www.4clojure.com/problem/33

        (= (__ [1 2 3] 2) '(1 1 2 2 3 3))

)

Замените URL другой строкой, и, похоже, все в порядке.

(comment 

Replicate a Sequence
replace the url and all is well. why 

        (= (__ [1 2 3] 2) '(1 1 2 2 3 3))

)
4b9b3361

Ответ 1

Поскольку URL не является допустимым токеном:

Clojure> http://www.4clojure.com/problem/33
java.lang.RuntimeException: Invalid token: http://www.4clojure.com/problem/33

В то время как другая строка, которую вы получили, может быть прочитана как Clojure forms:

Clojure> (quote (replace the url and all is well. why))
(replace the url and all is well. why)

То есть, Clojure не может проанализировать первый пример, независимо от того, находится ли он в (comment ...).

Для полноты, обратите внимание, что URL-адрес в порядке с комментарием ;:

Clojure> 3 ; http://www.4clojure.com/problem/33
3