Red语言入门(2)—— 代码结构和求值顺序

原创 2015年03月16日 09:58:53

前面讲到,Red语言非常简单易学。本文要介绍的是Red源代码文件结构和程序的求值顺序。

  1. 代码文件必须以Red []开始。
  2. 代码用空白分割,不需要行终止符。
  3. 求值顺序总是从左到右,数学运算符没有优先级的分别。
  4. 注释以分号; 或函数comment开始。

1. 文件后缀和文件头

Red代码文件后缀为 *.red 。而且每一个代码文件的开头必须包含文件头,一般形式如下:

Red []
可以在其中放入一些信息:
Red [
    Title:   "Description"
    Author:  "Qingtian Xie"
    File:    %filename.red
    Type:    'library
    Tabs:    4
    Rights:  "Copyright (C) 2015 Qingtian Xie. All rights reserved."
]

很多编程语言虽然没有强制要求文件头,但是作为一种良好的编程规范,程序员们往往都会在源代码文件中加入文件头信息。Red将其纳入语言规范的一部分,对其功能进行了增强,不仅仅只是提供一些描述信息。后面我们需要用到它的时候会详细介绍。

2. 空白

和大部分语言不同的是,Red代码不需要行终止符,只需要用空白(空格,制表符或换行符等)分割就行了,所以你可以把代码写成各种各样的形式。比如这样:

money: 100
if positive? money [
    print "买!买!买!"
]
或者这样:
money: 100 if positive? money [print "买!买!买!"]
或者这样:
comment {
    下面的程序很丑
    虽然它也能执行
}
money: 
100 
if 
positive? 
money 
[
    print "买!买!买!"
]

3. 求值顺序

Red表达式求值顺序是从左到右的,所有的数学运算符的优先级都一样。唯一的例外是,中缀运算符的优先级高于前缀运算符。圆括号可以改变求值顺序。

print 1 + 2       ; 先对中缀运算符`+`求值
1 + 2 * 3         ; 结果是9,而不是6
3 * (2 - 1)       ; 括号内的表达式先求值,结果3

所有运算符的优先级都一样,对有编程经验的同学来说,可能会有些不习惯。不过这无论是对编译器还是对程序员来说,都是一种简化。使用一段时间之后,你会渐渐适应并且喜欢上这个特性的,因为你再也不用去记忆一堆优先级了。

4. 注释

单行注释: 单行注释以分号( ; )开始。

多行注释: 使用`comment`函数,`comment`后的第一个Red值会被注释掉。

版权声明:本文为博主原创文章,转载请注明出处。