2012-03-31 10 views
3

私はいくつかの言語のClojureを学んでいるとき、構文の可読性と利便性が最も重要な問題です(多分これは間違っています)。
だから、Clojureは私に非常に魅力的ですが、維持するために多くの括弧があるかもしれません。
そして、私はいくつかの括弧を付けずにコードを書いてから、Clojureにコンパイルしてより良いものにするスクリプトがあれば検討しています。そのようなプログラムはこれまで存在していますか?
は(一度それはうれしいです、Schemeのためのインデント構文があると語った。どのようにClojureのでしょうか?)Clojureの括弧を追加するプログラムはありますか?

答えて

8

通常、あなたはあなたのためのブラケットの世話をするエディタやIDEを使用しています。

"rainbow parens"を持つことは特に便利です。つまり、かっこ内のレベルに合わせるためにカッコが色分けされていて、どのように並んでいるかを素早く確認できます。

いくつかのオプション:

  • Eclipse用のプラグインを反時計 - 偉大なあなたはすでにあなたはClojureのJavaコードを混在する場合のEclipseのユーザーである場合。
  • Emacs - Lispプログラマーの共通の選択肢です。それは簡潔だの、Clojureのコードは同等のJavaコードより少ない括弧を使用しているため、その一般的な注意

EmacsのためClojureのツールのかなり良いセットは、あります。

3

括弧に慣れると、実際にはJavaコードより読みやすくなります。読みやすくするために重要なのは、適切なインデントです。まともなIDEがコードブロックのインデントを修正します。

ただし、マクロで目的の操作を行うことができます。たとえば、スレッド化マクロ( - >)または..マクロ。より具体的な目的のために独自のマクロを書くことができます。

ここ例です:

ユーザー=>(STR(INC(整数/のparseInt "10"))) "11"

は ユーザー=>(のように書き換えることができる - >「10 "Integer/parseInt inc str) " 11 "

2ペアの節約! Woot!

元の質問に戻って、特定の状況で少ない括弧であいまいではないコードを書くことができれば、less-parensの構文を実際のClojureに展開するマクロを書くことができます。あなたはあなたが探しているものの例を持っていますか?

+0

多かれ少なかれこの1つです。括弧の一部を置き換えるためにインデントを使用するだけです。 – jiyinyiyong

関連する問題