Я использую Clojure 1.2 как на своей машине Snow Leopard OS X, так и на моем Ubuntu linux box с помощью команды lein repl
.Я прохожу обучающий урок https://github.com/swannodette/enlive-tutorial/
Когда я попадаю в урок "Третий скраб" и запускаю следующую команду:
(print-stories)
она работает как положено в Ubuntu, но в ОСX, он выводит только первый рассказ, а затем выводит остальное только после того, как я ввожу какое-то выражение, будь то число, (println "привет мир") или еще много чего.Что-то странное в том, как REPL работает в OS X, - как будто буфер не сбрасывает вывод полностью.
Я заметил, что в функции print-stories
используется макрос doseq
.Поэтому, если я сделаю это:
tutorial.scrape3=> (doseq [x (map extract (stories))] (println x))
, я получу вывод на OSX:
{:summary , :byline , :headline With Stones and Firebombs, Mubarak Allies Attack}
, который является только первым элементом.Если я затем ввожу 0
(или любое допустимое выражение) и нажимаю return, я получаю остаток от вывода:
0
{:summary The Conversation: Long, worthy road to democracy. , :byline , :headline }
{:summary The Frugal Traveler scores a cheap ticket to Malaga, Spain, birthplace of Picasso., :byline , :headline A Taste of Picasso (and Iberian Cuisine)}
{:summary Lay claim to the next great place: four emerging destinations., :byline , :headline Beat the Crowds}
[etc]
Я также замечаю, что это поведение не соответствует.Иногда ничего не выводится, и тогда я могу очистить его, набрав 0
или что-то еще и ввести.Иногда он корректно выводит все выходные данные.
У кого-нибудь есть идеи?