問題タブ [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 投票する
3 に答える
1283 参照

clojure - Clojure 'if' は 3 番目の引数を評価しない

私はしばらくの間、これが私たちのものであることを理解しようとしてきました。

それが私が書いた関数です。is-decimalには "2.5" や "5" などの何かが渡されますが、常にifの 2 番目の引数が使用され、3 番目の引数は使用されません。REPL でテスト(. astr (indexOf (int \.)))したところ、問題なく動作しているようです。失敗すると -1 が返され、失敗すると 1 が返されます。それが問題かもしれないと思います。-1 は、Clojure では false を意味しません。誰でもこれを修正する方法を考えることができますか?

前もって感謝します。

編集:助けてくれてありがとう。これを書いた直後に、ある考えが浮かびました。1 と -1 をチェックする述語関数を作成しました。必要なものだけ。目覚めた直後にコーディングするべきではありません:\

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

lisp - 複合ブールテストに相当するClojure(またはLisp)

C ++では、次のように記述します。

Clojureに相当するものは次のようなものだと思いますか?

または、私が見逃した論理的な「and」を実行する別の方法はありますか?私が言ったように、後者の形式は正しく機能しているようです-論理積を実行するためのより簡単な方法があるかどうか疑問に思っていました。そして、Clojure Google Groupで「boolean」、「logical」、「and」を検索すると、結果が多すぎてあまり使用できませんでした。

0 投票する
5 に答える
5630 参照

lisp - Lisp コードのフォーマット

Clojure/LISP 構文に関する別の質問に時間を割いてコメントしてくれた人の 1 人が、標準的な LISP の方法でサンプル コードを書いていないことを指摘しました。それで、彼は親切にもコード スニペットを書き直してくれました。それは大きな助けになります。しかし、それは私の心に別の疑問を引き起こしました。なぜこれは:

これは標準の LISP フォーマットであり、次の形式よりも優先されます。

これは、私の C++ 開発経験から、このコードを素朴にフォーマットした方法です。後者のフォーマットに利点があるのか​​ 、それとも定着した標準(QWERTYキーボードなど)なのか疑問に思っています。私は議論をしようとしているわけではありません.なぜ最初の形式が望ましいのか理解するのが難しいだけです. 2 番目の形式は、コード構造をより簡単に確認するのに役立ちます。

0 投票する
5 に答える
2025 参照

struct - 別の構造内にネストされた Clojure 構造

Clojureの構造内にネストされた構造を持つことは可能ですか? 次のコードを検討してください。

もちろん、これは不自然な例ですが、大きなデータ構造を小さなサブ構造に分割して、コードを管理しやすくしたい場合があります。コメントが示すように、フォーム 1 を実行すると「249 nil nil」が表示されますが、フォーム 2 を実行すると「コンストラクターを構築する引数が多すぎます」が表示されます。

この問題に間違った方法でアプローチしている場合は、何をすべきか教えてください。Clojure の Google グループを検索しても何も見つかりませんでした。


編集:

私の質問の文は、私が思っていたほど明確ではなかったと思います。

1.) Clojure である構造体を別の構造体内にネストすることは可能ですか? (下から判断すると、イエスです。)

2.) もしそうなら、正しい構文は何ですか? (繰り返しますが、下から判断すると、これを行う方法がいくつかあるようです。)

3.) 構造体が別の構造体内にネストされている場合、指定したキーで値を取得するにはどうすればよいですか?

私のサンプル コードは、私がしようとしていることをうまく示していなかったと思います。これをここに追加して、これを検索している他のユーザーがこの質問とその回答をより簡単に見つけられるようにします。

0 投票する
17 に答える
18784 参照

lisp - どの Lisp を学べばよいですか?

どの Lisp (方言) を学ぶべきですか? その理由は?

CL と Scheme の間の断片化は、(少なくとも私にとっては!) 理解を遅らせます。

では、「本当の答え」を教えてください!

私は機能の比較を読み込もうとしましたが、方言が完全に末尾再帰的であるかどうかなどのように、難解な (完全には理解していません) ことに行き詰まっているようです。みなさんが(まとめて)不透明な違いを明確にしてくれることを願っています。

好きなもの

優れたライブラリ サポート、優れた環境、および Unicode サポート。

嫌いなもの

フレイムウォーズ。最初は役に立ちますが、長期的な学習に支障をきたす機能。


アップデート

  1. 私は主に MzScheme を使用してきましたが、readline のサポートが開始されてからは、問題なく楽しんでいます。私は Unix で GUI を実行していないので、これは私にとって優れた環境オプションのように思えました。

  2. また、Clojure の .deb パッケージを debian に簡単にインストールできることも非常に嬉しく思います。これは大きな勝利です。下のかなり怒りやすい敵意にもかかわらず、参入障壁が低いことが勝利です. 私はスプーンで与えられるのが好きです。

  3. SICPをたくさん読んだ後、末尾再帰に関する問題をよりよく理解できました。

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

lisp - Common Lisp コードを Clojure に移植する

Common Lisp アプリケーションを Clojure に移植することは、どの程度実用的ですか? より具体的に言うと、Common Lisp に存在し、Clojure には存在せず、書き直さなければならない機能は何ですか?

0 投票する
18 に答える
1777 参照

functional-programming - 「リスプモード」で脳を動かすにはどうすればよいですか?

私の教授は、次のプログラミング課題のためにプログラミング言語を選ぶことができると言った。私は関数型言語を試すつもりだったので、clojure を試してみることにしました。問題は、構文を理解し、基本的な概念を理解していることですが、頭の中ですべてを「クリック」するのに問題があります。誰かアドバイスはありますか?それとも、関数型プログラミングを始めるのに間違った言語を選んでいるのだろうか?

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

java - Clojure でのコンパイルの問題

Clojure で非常に単純な test.clj をコンパイルしようとしましたが、成功しませんでした。Clojure Google Groupスレッドがあり、いくつかの回答が寄せられていますが、何も役に立ちません。簡単に要約すると、これが私の clojure ファイルです。

基本的には、Clojure ドキュメントで提供されているサンプル ファイルです。

このファイルを に適切に配置したclojure/src/test/test.cljので、 でコンパイルできるはずですが(compile 'test.test)、エラーが発生し続けます。

れは、クラスパスの問題であると私に信じさせます。Clojureのドキュメントに記載されているすべての標準コマンドと、スレッドからの最新の提案を使用して、Clojure を実行してみましたjava -classpath .;src;classes;clojure.jar clojure.main

それが役立つ場合、私のファイルシステムは次のようになります。

PS 私は Vista Ultimate で実行しているため、アクセス許可の問題である可能性がありますが、アクセス許可を確認したところ、問題は見つかりませんでした。

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

mysql - ClojureからMySQLデータベースに接続するにはどうすればよいですか?

前提:マシン上でClojureとMySQLの両方がすでに実行されている。
どうやって彼らに話させますか?

0 投票する
6 に答える
11498 参照

lisp - clojure の let vs def

Scannerclojure プログラムでJava クラスのローカル インスタンスを作成したいと考えています。これが機能しない理由:

しかし、次のようなグローバル インスタンスを作成できます。

唯一の違いは範囲であるという印象を受けましたが、どうやらそうではありませんでした。letとはどう違いdefますか?