2009-02-03 8 views
5

J'essaie d'obtenir une entrée de console dans mon programme Clojure, mais quand il me donne cette erreur quand il arrive à cette partie du programme. La fonction 'read' fonctionne, mais ce n'est pas ce dont j'ai besoin. Voici le code que j'utilise.Problème de fonction de lecture en ligne de Clojure

(defn prompt-read [prompt] 
    (print (format "%s: " prompt)) 
    (flush) 
    (read-line)) 

EDIT:

Il est évidemment que la version que je utilise. C'est la version incluse dans l'exemple de code actuel de programmation Clojure, je vais tester la version actuelle et voir si c'est le problème.

+0

Juste fyi, à http://github.com/stuarthalloway/programming-clojure/tree/master Halloway inclut une copie de clojure et clojure-contrib qui sont les versions qu'il utilise pour le livre dans sa forme actuelle. – Runevault

+0

Oui, ce sont ceux qui ont échoué. – Rayne

Répondre

3

Hmm, ça a l'air de marcher pour moi. Quelle version de Clojure utilisez-vous et comment appelez-vous prompt-read? Voici ce que je suis en train de revenir (ici goo est ma réponse):

user=> (defn prompt-read [prompt] 
(print (format "%s: " prompt)) 
(flush) 
(read-line)) 
#'user/prompt-read 
user=> (prompt-read "foo") 
foo: goo 
"goo" 
+0

Oui monsieur c'était le problème! Merci! – Rayne

+1

Bien sûr. Clojure a beaucoup changé dernièrement, donc j'ai rencontré beaucoup de problèmes similaires entre la première version bêta du livre et la version bêta actuelle (mais apparemment, ça va se calmer un peu plus tôt). –

1

Le problème de lecture en ligne est un bug connu. C'était corrigé. Mettez à jour votre version de Clojure.

Questions connexes