2009-06-30 6 views
1

CodyはPythonマクロ構文を構築しています。彼はこれらのマクロを使用すると、新しい演算子に新しい 構築物から、 完全にカスタム構文を定義することができPythonのマクロ構文のカスタマイズに関する文を理解できません

言います。 Pythonでこれを行うための機能がありません そのままです。

私は彼が新しい演算子に

  • 新しい構築物によって何を意味するのかわからない:彼はバイナリな+などの演算子、参照ん - 数学では、乗算?
  • 彼の主な目標:Pythonのマクロ構文をカスタマイズする際のメリットは?

答えて

6

間違いなくコーディーは、^^または++または+*など、彼らは何を意味するかもしれない(私は知らない)として、Pythonで、現在ではありません完全に新しい演算子を指します。そして彼は、マクロシステムがPythonの全く新しい構文を定義できると明言しています(彼の質問は、マクロ定義自体の構文に関するものでした)。

文法については気にかかっている人がいます。たとえば、インデントでグループ化するのではなく、中括弧をPythonが使用することを望む人もいます。しかし、Pythonの自体は...それらの人々の好みに従うことはありません:

>>> from __future__ import braces 
    File "<stdin>", line 1 
SyntaxError: not a chance 

したがって、これらの人々は、彼らがこのマクロシステムを通じてPythonのために完全に新しい構文を定義することによって切望何を得るかもしれません。

Pythonの一般的なアウトラインのほとんどに従っている特殊なカスタム言語を定義するのに、特別な新しいキーワードを追加したり、かっこを使用せずに関数を呼び出すことができます。

実際には良いことであるかどうかは、古くからの疑問な問題ですが、Lispなどの言語の中には常にこのような力のマクロがあり、Peter NorvigのようにLispからPythonに来た多くの人々がおそらく、彼らが以前はLispで使っていたものの、Pythonにはない文法作りの力を取り戻すことはとても嬉しいことです。

+0

@Alex:あなたの説明をありがとう! –

関連する問題