0

これが私のコアコードです(申し訳ありませんが、一部はポルトガル語です)

(ns prova1-ed.core
  (:gen-class))

(use 'clojure.java.io)

(defn getFile []
  (let [filename (read-line)] 
    (if (.exists (java.io.File. filename))
      filename
      (do
        (println "Nome de arquivo inválido. Digite novamente:")
        (recur))))) 

(defn getFileLines [^String filename]
  (defn lista '())
  (with-open [rdr (reader filename)] 
    (doseq [line (line-seq rdr)]
      (if-not (= "" line)
        (concat lista '(line)))
      ))
  lista)

(defn -main [& args]

  (println "Olá! Digite um arquivo contendo as contas bancárias:")
  (getFileLines (getFile)))

prova1-ed.core> (-main)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: -main in this context, compiling:(C:\Users\Tiago\AppData\Local\Temp\form-init296650600503762010.clj:1:1)

私はサイダー、レイン、Emacs を使用しています。project.clj は変更していません。昨日は動いていました(本当に)。

必要に応じて、さらに詳細を提供する場合があります。


編集

lein run提案どおりに試してみたところ、受け取りました

Unable to resolve symbol: filename in this context, compiling:(prova1_ed/core.clj:8:18)

filenameという結果になったはずread-lineです。

4

1 に答える 1

0

エラーはオン(defn lista '())です。である必要があります(def lista '())

それは知っている動作しています。

(Emacsを使ってデバッグするのは難しい)

ありがとう!

于 2016-05-01T00:58:48.317 に答える