2
私はClojureの初心者です。コマンドラインで指定する必要があるファイルを読み込もうとしています。Clojureでは、コマンドプロンプトで指定されたファイルを読む
私はREPLで、ファイル名を与えて、次のことをしようとすると、それは
(ns testpj.core
(:require [clojure.java.io :as io]))
(defn readfile [filename]
(println (System/getProperty "user.dir"))
(println "Arguments: " filename)
(slurp filename))
を取り組んでいます。そして、私はREPLでこれを実行すると、私は、ファイルの内容
(require '[testpj.core :as h])
(h/readfile file1.txt)
を得る。しかし上記のコードをmainに変更したときに、ファイル名を コマンドラインで指定しようとしました。
lein run file1.txt
(defn -main [& args]
(println (System/getProperty "user.dir"))
(println "Arguments: " args)
(slurp args))
、次のエラーが表示されます。
"java.lang.IllegalArgumentException:<(" file1.txt ")>をInputStreamとして開くことができません。
誰でも手助けできますか?ありがとう
あなたは、「VAR 'args'」と言うが、「varが」Clojureの中に特定の意味を持つ単語であることを覚えておいてください関数のローカルは別のものです。バインディング、ローカル、または引数と呼ぶことができます。 – amalloy