有没有名称可以包含空格字符的语言?

时间:2010-11-16 15:36:16

标签: programming-languages compiler-theory

是否有任何编程语言允许Names包含空格? (通过名称,我打算使用变量,方法,字段等)

11 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:4)

在SQL中,您可以在字段名称等中包含空格和其他非标识符字符。您只需引用[field name]"field name"

答案 2 :(得分:4)

如果用管道(|)包围变量名称,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

答案 3 :(得分:2)

PHP可以:http://blog.riff.org/2008_05_11_spaces_php_variable_names

Perl也是:

${'some var'} = 42;
print ${'some var'}, "\n";

${'my method'} = sub {
  print "method called\n";
};

&${'my method'};

答案 4 :(得分:1)

在Ruby中,您可以使用名为:"this has a space"的符号,但它用双引号括起来,所以我不确定您是否算数。

如果其他语言允许空格作为符号名称中的有效字符,那么您必须使用其他一些字符来分隔它们。

答案 5 :(得分:1)

变量名中的空格的问题在于它受到解释,因为空格通常意味着“ok,当前令牌的结束,启动另一个令牌”。此规则的例外情况必须有一些特殊指示符,例如字符串中的引号(“This is a test”)。

答案 6 :(得分:1)

我们的PARLANSE并行编程语言就是这样。事实上,它允许标识符中的任何字符,尽管其中许多字符(包括空格)必须被转义(以〜开头)才能包含在名称中。这是一个例子:

         ~'Buffer~ Marker~'

这用于让PARLANSE轻松引用其他语言中的任意符号(特别是从任意参考文档中获取的EBNF,我们无法控制使用的标点符号)。

我们不会大量使用此功能,但在需要时,这意味着我们可以保持其他文档中的令牌。

答案 7 :(得分:1)

最新的创新和实验性网络脚本(子)类型的JavaScript:http://pogoscript.org/

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"));

答案 8 :(得分:0)

您可能能够找到不在本网站上用空格分隔表达元素的深奥语言:http://99-bottles-of-beer.net

例如...... whitespace:D

答案 9 :(得分:0)

SQL的某些方言允许数据库,表和字段在其名称中包含空格。

例如,在SQL Server中,您可以通过将表名放在[square brackets]中或({取决于连接选项)"double quotes"中来引用名称中包含空格的表。 / p>

答案 10 :(得分:0)

创建支持标识符中的空格的语言不应该有太多问题,只要有足够的分隔标记来说明标识符结束的解析器(例如运算符,大括号,逗号和臭名昭着的分号)。它只是没有太多提高源代码的可读性。