独自の行の閉じ括弧は受け入れられませんか?[閉まっている]


8

私はかなり長い間Emacsを使用してきましたが、最近、コーディング標準に出くわしました。そこにはそれが述べられています:

自分で行に閉じ括弧を付ける習慣をつけないでください。Lispプログラマーはこれを当惑させます。

これは、コードを読みやすくするために、私が構築した習慣とまったく同じです。Emacsで提供されるパッケージに混合スタイルが表示されます。私の質問は、この混乱がほとんどのelispプログラマに共通しているかどうかです。

編集:私のコードを見て、私は厳密にこれに従っていません。次に、コードはかなり恐ろしいでしょう。ほとんどの場合、defun、let、ifなどです。しかし、それは木目に反しているようなので、おそらくこれをやめるべきです。入力のための乾杯。

(ボーダーラインの意見に基づいていますが、C ++での閉じ括​​弧に関連しているようです。この場合、通常は独自の行にあるべきであると述べることは議論の余地がないはずです)。


4
受け入れられないわけではなく、本当に迷惑です:)
abo-abo

4
角かっこが曖昧さの可能性を取り除くことを除いて、それを空白言語のように考えてください-適切にフォーマットされたlispでは、角かっこを見なくてもそれを読むことができるはずです
Squidly

1
emacsで提供されているパッケージがこれに準拠していないことに興味があります。
Malabarba 14

3
@Malabarba LISPソースでの検索によりag^\s*?\)$約200のパッケージに属する468個のファイルを構成する3414個の正規表現の候補が得られますか?
wasamasa

1
@wasamasaいいね。私はそれをさらに2、3のパイプに通して、.elファイルの90%がこれのインスタンスが10未満であることを確認しました。これらのファイルはスタイルとしてそれを採用しないことを意味し、彼らはいくつかの便利な場所でそれを使用します(本当に長い関数を終了するような)。
Malabarba

回答:


6

まあ短い答えは「必要がない」です。EmacsはLISPのs式を解析できるので、フォームがどこでバランスするかを正確に知っており、コードを正しくインデントすることができます。この場合、ブラケットをそれ自体の行に移動すると、余分なスペース行が無駄になるだけでなく、標準的なスタイルに慣れている他のLISPプログラマにとって不快であると同時に不快になります。コメントで述べたように、垂直の空白を使用してコードのチャンクを視覚的に分離することを妨げるものではありません。

実際には、LISPプログラマーを使用する多くのEmacs は、閉じ括弧の密なネストをナビゲートするのに役立つshow-paren-modeなどのさまざまな追加の視覚的手がかりを使用します。pareditsmart-parensなどのモジュールを編集サイクルに組み込んだエンジニアは、ASTと一体になり、式のバランスが常に取れて完全になるように直接構造を直接操作しています。


もちろん、括弧のマッチングなどもありますが、すべてのコードで垂直方向のスペースがあると思います。これが、この非推奨の習慣がもたらすものです。しかし、一般的なスタイルは常に良いです。どんな公の人にとっても、私は推奨される方法を使用します。しかし、それを裏返すために、最後の括弧の質量がどのような値をもたらすか:)。
意味のあるユーザー名2014

4
いつでも垂直方向のスペースを追加できます。各ラインを次のラインまでスムーズにする必要があるということは何もありません。縦のスペースが便利な場合があります。時々そうではない。括弧を行の最後に置くと、垂直スペースを追加するタイミングと追加しないタイミングを選択できます。新しい行の括弧は、垂直方向のスペースを強制します。
zck

@zck:私はあなたの要点を述べるために答えを更新しました。ありがとう。
stsquad

いい視点ね。標準に準拠するようにコードを変更し始めました。それほど大きな違いはないので、慣れるまでに時間がかかりません。かっこは何かに使用する必要があると思っただけだと思いますが、他のほとんどの人はそれらをほとんど無視しているようです。
意味のあるユーザー名2014

6

RiastradhのLispスタイルガイドでは、この特定のトピックについてもう少し詳しく説明しています。彼は通常、独自の行に閉じかっこを配置することを推奨していませんが、前の行の閉じかっこがコメント化されていることや、最初または最後に新しい要素を追加するときに常に差分をめちゃくちゃにする本当に長いリストなど、いくつかの例外を認識しています。 。


1

私は約2〜3年前からElispを書いています。最初はぶら下がっている括弧のことをしていましたが、あなたが言ったルールを発見したので、私は自分でそれを始めました。そして、適切にスタイル設定されていると、コードを読むのがはるかに簡単になったと言えるでしょう。

LISPのかわいらしいコードをここに書きました: lispy-tab

そしてもちろん、私はいつも持っshow-paren-modeています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.