問題タブ [clojure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
8135 参照

lisp - Clojure変数とループ

グーグルで調べてみると、whileループを使用したり、変数を使用したりすることはお勧めできません。

ここで、入力ストリームから文字を読み取り、それに応じて解析する非常に単純なアルゴリズムを実装しました。入力の場合10:abcdefghejは解析し10、コロンの次の10バイトを読み取ります。

私が少し迷っているのは、変数に依存しないようにこれをリファクタリングする方法です。

また、変数を宣言する唯一の方法はwith-local-varsキーワードを使用することであることを理解しています。最初にすべての変数を1つのブロックで定義するのは非現実的ではありませんか、それともいくつかの重要なポイントが欠けていますか?

0 投票する
2 に答える
344 参照

loops - Clojure ループは 1 つ余分に読み取ります

長さが 4 の場合、次のループは 5 回実行されます。ストリームから 5 文字を読み取ります。

0 投票する
2 に答える
4229 参照

java - 奇妙なクラスパス、.NoClassDefFoundError エラー

編集済み:ソリューションが見つかりました。これは奇妙で、最善の解決策ではありませんが、swt.jar と私のクラスがまったく同じ瞬間に同じ方法でロードされるように、先に進んで MY JAVA CODE (com.*) のクラスを swt.jar に入れました。クラスローダー。最善の解決策ではありませんが、一時的な修正です

編集: ここにほとんどのコードを追加しました: http://groups.google.com/group/clojure/browse_thread/thread/1d7dd4913b2f9aa7 http://groups.google.com/group/clojure/web/NoClassDefIssue.zip http: //groups.google.com/group/clojure/web/MostCodeIssue.java

これは奇妙な no classdef not found エラーです。これは、私のコードの動作の 90% が少し異なるシナリオです。Clojure を使用していることを無視してください。通常の Java コードでもこれを実行しましたが、同じエラーが発生します。

理想的には、カスタム クラスローダーに関するヘルプを期待していました。私の最初の考えは、クラスローダーを作成し、jar のファイルパス/URL をクラスローダーに追加して、コードを起動できるということでした。しかし、どうやら奇妙なことが起こっているようです。

  1. 4〜5個の補助jarファイルを動的にロードするjarファイルが1つあります。シンプルな URLClassLoader に基づいて構築されています。ユーザーが 1 つの jar ファイルをクリックしてアプリケーションを起動できるため、これを実行したいと考えています。そのため、ユーザーが心配しなければならない項目が 1 つあります。

  2. この jar ファイルをクリックすると、アプリケーションはファイルシステムから jar ファイルをロードします。たとえば、アプリケーションは swt.jar (Eclipse のウィジェット ツールキット) とその他の jar をロードします。

3 (しかし心配しないでください)、私のアプリケーションは Clojure (動的プログラミング言語) で構築されています。最初に起動するアプリケーションはこの Clojure スクリプトです。私のアプリケーションのほとんどは、clojure スクリプト内にあります。

4. 1 ~ 3 まではすべて問題なく動作します。アプリケーションがロードされ、clojure スクリプトが実行され、SWT GUI アプリケーションが実行されます。

  1. ここが動かない部分です。

  2. 既存の Java ライブラリがあり、それを my-swt-gui.jar と呼びます。それもswtアプリケーションです。基本的に別のGUIアプリケーションがすでに構築されています。現在の clojure/swt アプリケーションからウィンドウをロードしようとしています。何らかの理由で、JAVA 指向のライブラリが SWT を認識せず、noclassdef エラーが発生します。

ここが奇妙です。そして、どこに奇妙な点があると思われるかを特定します。

エンティティ: A. Java 指向のクラスローダー。Java クラスローダーで、clojure アプリケーションを起動します。SWT およびその他の jar ファイルは、このクラスローダーでロードされます。B. セクション エンティティによって呼び出される Clojure 指向のコード clojure コードは、swt ベースの GUI アプリケーションです。B は正常に動作します。C. 別の GUI ウィンドウを含む Java コード。何らかの理由で、このライブラリが読み込まれず、noclassdef というエラーが発生します。

注: 私は、SWT クラスが実際にクラスパスにあることを知っています。そうしないと、NoClassFound 例外が発生します。私はその例外を受けていません。他にも何かが起こっています。

注: SWT に win32 dll が含まれていることも問題でしょうか? おそらく、win32 dll jar へのアクセスは初めて機能しますが、Java コードでは機能しませんか? しかし、それは奇妙です。SWT が機能し、その後機能しないのはなぜですか?

すべてのコードをお見せすることはできませんが、関連する部分をお見せできれば幸いです。

メインのクラスローダー コードは次のとおりです。


そして、これがJava swtウィンドウをロードしようとした方法です。クラスローダーについてできるだけ多くを印刷して、別のクラスローダーに変更しようとしました。

public static final void createPDFWindowShell(IStartService service, final Object shell, final Object globalClassLoader) throws Exception {

}


エラーは次のとおりです。

-

0 投票する
1 に答える
294 参照

function - ストリームロックから読み取るClojure関数

(get-next-indicatorストリームインジケーター)と呼ばれる入力ストリームから1つのトークンを読み取り、それを返す関数があります。私はそれを使って地図を作成しようとしています。

しかし、私がそれを実行すると、それはロックされます。get-next-indicator関数の1つを削除すると、機能します。両方の関数が同時にストリームを読み取ろうとしますか?これです。これを引き起こしているのは何ですか?

0 投票する
11 に答える
5082 参照

vim - vimでREPLをセットアップするにはどうすればよいですか?

clojure の学習を簡単に開始できるように、vimclojure をインストールしました。しかし、vim内でREPLをセットアップできませんでした。これは基本的に、vim(?) で maplocalleader を記述できなかったためです。

vimclojure/doc/clojure.txt のドキュメントに基づいて、REPL を開始するために .vimrc に以下を追加しました -

ただし、「sr」と入力しても REPL は開始されません。

前もって感謝します。

0 投票する
3 に答える
1330 参照

ruby - Compojure/Sinatra アプリケーションのデプロイ

compojure/sinatra アプリケーションを展開するための推奨される方法は何ですか? ホスト上で複数のサイトを実行しているため、ポート 80 で jetty/mongrel を実行できません。同じホストで実行されている複数のサイト/アプリケーションをどのように処理すればよいですか?

0 投票する
1 に答える
154 参照

clojure - 構造体のフィールドのリストを取得する

構造体に含まれるフィールドを見つけるにはどうすればよいですか? たとえば、次のものがある場合:

から (:data :left :right) のリスト、セット、またはベクトルを取得するにはどうすればよいですか? 私はもう試した

しかし、これは正しいように見えるメソッドを提供しません。

0 投票する
3 に答える
2286 参照

clojure - Clojureマクロの問題

別の構造体をベースとして新しいベースを作成する関数を作成しようとしています。最初に、古い構造体と同じフィールドを持つ新しい構造体を作成するマクロを作成しようとしました。私がこれを行うべきだと思ったマクロは以下のとおりですが、次のエラーが発生します。

大きい:

使用例:

この場合の望ましい出力は次のようになります。