Я запускаю Clojure 1.2 как на своей машине Snow Leopard OS X, так и на моей Linux-системе Ubuntu с помощью команды lein repl
. Я просматриваю учебник по enlive https://github.com/swannodette/enlive-tutorial/
Когда я доберусь до учебника «Третья очистка» и запущу эту команду:
(print-stories)
он работает, как и ожидалось, в Ubuntu, но в OS X он выводит только первую историю, а затем выводит остальные только после того, как я введу какое-то выражение, будь то число, a (println «hello world») или что-то еще. Что-то кажется странным в том, как REPL работает на OS X - как будто буфер не полностью очищает свой вывод.
Я заметил, что макрос doseq
используется в функции print-stories
. Итак, если я сделаю это:
tutorial.scrape3=> (doseq [x (map extract (stories))] (println x))
Я получаю этот вывод на OSX:
{:summary , :byline , :headline With Stones and Firebombs, Mubarak Allies Attack}
который является только первым элементом. Если я затем введу 0
(или любое допустимое выражение) и нажму клавишу возврата, я получу остальную часть вывода:
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
или что-то в этом роде, и войти. Иногда он правильно очищает весь вывод.
У кого-нибудь есть идеи?