2

コマンドを使用して、Snow LeopardOSXマシンとUbuntuLinuxボックスの両方でClojure1.2を実行していますlein repl。enliveチュートリアルhttps://github.com/swannodette/enlive-tutorial/を実行しています

「ThirdScrape」チュートリアルに到達して次のコマンドを実行すると、次のようになります。

(print-stories)

Ubuntuでは期待どおりに動作しますが、OS Xでは、最初のストーリーのみを出力し、数値、(println "hello world")などの式を入力した後にのみ、残りのストーリーを出力します。バッファが出力を完全にフラッシュしていないかのように、REPLがOSXで動作している方法について何か奇妙なようです。

doseq関数でマクロが使用されていることに気付きましたprint-stories。だから私がこれを行うと:

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か何かでそれをフラッシュして入力することができます。場合によっては、すべての出力が適切にフラッシュされます。

誰かアイデアはありますか?

4

2 に答える 2

1

たまたま、昨夜ユキヒョウで同じenliveチュートリアルを実行しましたが、scrap3(print-stories)関数は問題なく機能します。あなたの質問のdoseqコードも、止まることなく機能します。

コマンドラインで「leinversion」を実行すると、どのような出力が得られますか?私のバージョンの詳細は次のとおりです。

Leiningen 1.4.2 on Java 1.6.0_22 Java HotSpot(TM)64ビットサーバーVM

乾杯、コリン

于 2011-02-02T21:18:14.577 に答える
1

これはOSXの問題ではなく、ubuntu10.10でも発生しました。leiningenAFAIKによって使用されるrlwrapに関連している可能性があります。最近はケーキを使っています。

于 2011-02-02T23:00:59.320 に答える