BaseLanguage のプロパティ
プロパティは、 getter および setter とともにプライベートフィールドを使用して BaseLanguage クラスを強化するためのショートカットを提供します。
特性の説明
Properties are part of BaseLanguage itself, so no additional import is necessary. They are supposed to be created as class members alongside fields and methods.

プロパティは以下を定義します。
可視性。getter の可視性として使用されます。
型 - プロパティによって格納される値の型、getter の戻り値の型、および setter の単一パラメーターの型を示します。
Getter - 'default' (暗黙的) でプロパティ値を返すことも、明示的に返すこともできます。
Setter - 読み取り専用プロパティの場合は「none」にすることができ、'default' はプロパティの値を単に設定するか、明示的に設定します。
プロパティの編集
新しいプロパティを挿入すると、通常はデフォルトの getter とプライベートのデフォルト setter で始まります。

Pressing Enter on the getter will create an explicit getter for you to insert the code and the setter will be removed (read-only property). The setter can be provided by pressing Enter in the setter region.

Pressing Enter on the setter, instead, will keep a default getter and create an explicit setter.

Regardless of the situation, you can always delete an explicit getter or setter with Delete and create them with Enter.

getter および setter では、2 つの特別な式が使用できます。
value - setter のパラメーターを参照します
実際のプロパティ名 - setter と getter の両方の現在のプロパティ値を指します。
プロパティを getter および setter のフィールドに変換したり、その逆に変換したりするために、2 つのインテンション / リファクタリングが使用できます。

関連ページ:
BaseLanguage の拡張機能用のジェネレーターを実装する
この記事では、LValue 式で動作する BaseLanguage 拡張機能のジェネレーターを記述する慣用的な方法を紹介します。BaseLanguage 式は、代入式の左側で使用できる場合、lvalue であると言います。このような式を導入する概念は、動作の側面でインスタンスメソッド Expression#isLValue() または静的メソッド Expression#lvalue() のいずれかをオーバーライドする必要があります。この調査は 2 つの独立した言語で構成されており、どちらも BaseLan...
クロージャー
導入:クロージャは、基本言語の便利な拡張機能です。これらはコードをより簡潔にするだけでなく、プログラミングの関数型パラダイムの領域を通過するための手段として使用できます。プログラムでは、関数を第一級オブジェクトとして扱うことができます。変数に格納したり、引数としてメソッドに渡したり、メソッドや関数に他の関数を返させたりすることができます。MPS クロージャサポートを使用すると、自国語でクロージャを使用できます。実際、MPS 自体は、たとえばコレクション言語でクロージャを多用します。この言語は、...