私は clojurescript を使い始めたばかりで、多くの疑問があります。私がやりたいことは、基本的な問題を解決するためだけに clojurescript を使用することです。今のところ、Web とは関係ありません。
Web 開発の部分を削除すると、Clojure と ClojureScript でのコーディングに違いはありますか? それともまったく同じですか?
また、コマンドcat DATA.lst |を使用できるかどうか疑問に思っていました。clj program.cljsで clojurescript コードを実行するには? それともコンパイラが違うのですか?もしそうなら、どうすればclojurescriptコードをコンパイルできますか
公式ページに関しては、非常に限定された hello world ! が表示されます。次の行は、clojurescript をコンパイルするコマンドとしてページによって配信されます。
clj --main cljs.main --compile hello-world.core --repl
--repl コマンドを使用した場合にのみ出力されます。これを削除すると、コンソールは結果の出力を停止します。問題は、出力されるものが非常に異なることです。 clojure cat DATA.lst のコマンド | clj プログラム.cljs
それは完全に Web 指向であるため、常にブラウザーで開いて、そのトピックに関連する何かを表示していますが、これは私の場合とは関係ありません。
コードを実行する方法を知りたいので、clojure ではなく clojurescript 用にコンパイルされていることを確認します (それらが異なる場合)。
ページを公開する複雑なプロジェクト ツリーを作成する必要があります。または、単純な方法でフォルダーに残すことができます。(これは私がclojureで作業する方法です)?
コンパイルしようとしているコードは以下のとおりです。簡単です。標準入力を読み取って、最後に必要な情報を処理するだけです
(defn get-data []
(let [input-string (read-line)]
(lazy-seq
(if (seq input-string)
(cons (clojure.string/split input-string #" ") (get-data))
nil))))
(defn get-mod [data]
(lazy-seq
(if (seq data)
(cons (map (fn [x] (rem (Integer. x) 12)) (first data))
(get-mod (rest data)))
nil)))
(defn main []
(def data (rest (get-data)))
(def module (get-mod data))
(println module))
公式の clojure スクリプト ページを提供するコード行を使用すると、ターミナルで vscode が提供するものは次のとおりです。
WARNING: When invoking clojure.main, use -
ClojureScript 1.10.758
cljs.user=> 33
cljs.user=> 50
57
54
69
cljs.user=> 72
80
68
56
63
cljs.user=> 47
71
40
56
59
52
cljs.user=> 74
59
78
66
cljs.user=> 74
62
94
82
77
cljs.user=> 50
66
57
54
cljs.user=> 68
72
63
44
56
cljs.user=> 60
48
79
75
63
cljs.user=> 67
51
58
cljs.user=> 66
78
51
60
54
cljs.user=> 56
52
49
25
61
cljs.user=> 36
53
45
48
cljs.user=> 58
61
42
49
54
cljs.user=> 76
80
68
68
60
cljs.user=> 63
58
54
51
58
cljs.user=> 42
50
54
54
58
cljs.user=> 50
59
54
62
66
54
cljs.user=> 65
41
61
49
56
cljs.user=> 27
48
43
55
cljs.user=> 35
43
35
47
28
cljs.user=> 49
44
52
32
44
cljs.user=> 74
58
65
70
53
cljs.user=> 52
56
40
60
52
cljs.user=> 54
69
69
62
cljs.user=> 52
49
56
76
cljs.user=> 58
66
50
70
50
cljs.user=> 82
70
73
77
70
cljs.user=> 56
51
63
35
cljs.user=> 59
67
52
71
79
cljs.user=> 72
72
76
84
57
cljs.user=> 66
61
58
61
cljs.user=> 49
32
52
32
cljs.user=> 64
33
52
64
49
これは、標準入力に入力した情報とまったく同じです。つまり、コードが指示することは何もしませんでした。配信する必要があるのは次のとおりです。
((2 9 6 9) (0 8 8 8 3) (11 11 4 8 11 4) (2 11 6 6) (2 2 10 10 5) (2 6 9 6) (8 0 3 8 8) (0 0 7 3 3) (7 3 10) (6 6 3 0 6) (8 4 1 1 1) (0 5 9 0) (10 1 6 1 6) (4 8 8 8 0) (3 10 6 3 10) (6 2 6 6 10) (2 11 6 2 6 6) (5 5 1 1 8) (3 0 7 7) (11 7 11 11 4) (1 8 4 8 8) (2 10 5 10 5) (4 8 4 0 4) (6 9 9 2) (4 1 8 4) (10 6 2 10 2) (10 10 1 5 10) (8 3 3 11) (11 7 4 11 7) (0 0 4 0 9) (6 1 10 1) (1 8 4 8) (4 9 4 4 1))