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值会被注释掉。

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

相关文章推荐

深入理解ssh端口转发细节

深入理解ssh端口转发细节 一.本地端口转发 A机: 172.16.32.123 B机: 172.16.32.102, 10.0.0.2 C机: 10.0.0.1 (说明:C机与B机直连,C机无网关...

SSH端口转发的理解(精华)

http://loopholes.blog.51cto.com/9445813/1621786 之前一直在纠结什么是端口转发,现在写下自己的理解,并试验本地端口,远程端口转发 SSH(Se...

C语言精华记录——贰(几个关键字、几个运算符、隐式转换/溢出、表达式求值的顺序、左值和右值)

贰 几个关键字 sizeof 1、sizeof是关键字而不是函数。 例:int i=3;   sizeof(i) ;  与  sizeof i ; 是完全等同。 sizeof在计算变量所...

C/C++ 语言中的表达式求值顺序

裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友发email给我...

c语言中的求值顺序

首先弄清楚一个问题:求值顺序并不是运算顺序

关于C/C++ 语言中的表达式求值顺序

裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?” m = 1; n = m+++m++; 最近有位不相识的朋友发email给我...

C语言 算数表达式求值(顺序栈应用实例)

//顺序栈的应用:表达式求值 //允许用户输入空格(系统自动删除),只能进行整数的四则运算,支持小括号 //对不能整除的将按两个整数除法规则进行取整 //作者:nuaazdh //时间:201...
  • nuaazdh
  • nuaazdh
  • 2011年12月08日 22:18
  • 11595
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Red语言入门(2)—— 代码结构和求值顺序
举报原因:
原因补充:

(最多只允许输入30个字)