名前に空白を含めることを許可するプログラミング言語はありますか? (名前で、私は変数、メソッド、フィールドなどを意図しています)
11 に答える
Scala では、識別子名に空白文字を使用できます (ただし、それを可能にするには、識別子をバッククォートのペアで囲む必要があります)。
例 (Scala REPL で実行):
Welcome to Scala version 2.8.0.final (Java HotSpot(TM) Client VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val `lol! this works! :-D` = 4
lol! this works! :-D: Int = 4
scala> val `omg!!!` = 4
omg!!!: Int = 4
scala> `omg!!!` + `lol! this works! :-D`
res0: Int = 8
変数名をパイプ (|) で囲むと、Common Lisp は変数でそれを行うことができます。
CL-USER> (setf |hello world| 42)
42
CL-USER> |hello world|
42
「パイプされた」変数名も大文字と小文字が区別されることに注意してください (変数名は通常 CL にはありません)。
CL-USER> |Hello World|
The variable |Hello World| is unbound.
[Condition of type UNBOUND-VARIABLE]
CL-USER> (setf hello-world 99)
99
CL-USER> hello-world
99
CL-USER> HeLlO-WoRlD
99
SQL では、フィールド名などにスペースやその他の非識別子文字を含めることができます。[field name]
またはのように引用するだけ"field name"
です。
PHP は次のことができます: http://blog.riff.org/2008_05_11_spaces_php_variable_names
パールも:
${'変数'} = 42; print ${'some var'}, "\n"; ${'私の方法'} = サブ { print "呼び出された\n"; }; &${'私の方法'};
Ruby では as という名前のシンボルを使用できますが:"this has a space"
、二重引用符で囲まれているため、カウントするかどうかはわかりません。
他の言語がシンボル名の有効な文字として空白を許可している場合は、他の文字を使用してそれらを区切る必要があります。
JavaScript の最近の革新的で実験的な Web スクリプト (サブ) タイプ: https://github.com/featurist/pogoscript/wiki
wind speed = 25
average temperature = 32
になる
windSpeed = 25
averageTemperature = 32
スクリーンの後ろ。戻り変数の配置に関する柔軟なルールもあるため、次のことができます。
y = compute some value from (z) and return it
md5 hash (read all text from file "sample.txt")
なる:
var y;
y = computeSomeValueFromAndReturnIt(z);
md5Hash(readAllTextFromFile("sample.txt"));
変数名のスペースの問題は、空白は通常「OK、現在のトークンの終わり、別のトークンの開始」を意味するため、解釈の対象になることです。この規則の例外には、文字列内の引用符 ("This is a test") などの特別な標識が必要です。
私たちのPARLANSE並列プログラミング言語はその 1 つです。実際、識別子の任意の文字を許可しますが、名前に含めるには、スペースを含むそれらの多くをエスケープする必要があります (前に ~ を付ける)。次に例を示します。
~'Buffer~ Marker~'
これは、PARLANSE が他の言語の任意の記号を簡単に参照できるようにするために使用されます (特に、使用される句読点を制御できない任意の参照ドキュメントから取得した EBNF から)。
この機能はあまり使用しませんが、必要な場合は、他のドキュメントからのトークンに忠実であり続けることができます。
識別子の末尾にパーサーを示す十分な区切りトークン(演算子、中括弧、コンマ、悪名高いセミコロンなど)があれば、識別子の空白をサポートする言語を作成するのにそれほど問題はありません。ソースコードの可読性はそれほど向上しません。
次の Web サイトで、式要素を空白で区切らない難解な言語を見つけることができるかもしれません: http://99-bottles-of-beer.net
たとえば...空白:D
SQL の一部のダイアレクトでは、データベース、テーブル、およびフィールドの名前にスペースを含めることができます。
たとえば、SQL Server では、名前にスペースを含むテーブルを参照できます。これには、テーブル名を に入れる[square brackets]
か (接続オプションに応じて) に入れ"double quotes"
ます。