翻译:ShiningRay @ NirvanaStudio
本文是一篇针对新用户的技术文档。他给出了一个REBOL的简明概述和一个例子。
Quick Facts
- REBOL 代表基于相关表达式的对象语言(Relative Expression Based Object Language).
- REBOL 发音为"reb-ol" ,和“rebel with a cause”中的一样。
- REBOL 是一种消息式的语言。他的主要目的是提供一种轻量级的分步计算和通讯的方法。
- REBOL 由Carl Sassenrath设计, 是Amiga OS——世界上第一个个人电脑的多任务操作系统——的系统架构师。
- REBOL 不仅仅只是一个编程语言。他还是一种用于表示数据和元数据的语言。他给计算、存储和信息交换提供了同一种方法。
- REBOL 有十分丰富的软件包。初学者可以从REBOL/Core和REBOL/View开始。专业人士会发现REBOL/Command和REBOL/SDK十分有用。公司和组织会发现REBOL/IOS是一个强大的协作交流平台。
- REBOL 代码和数据跨越了40多种平台。在Windows上写的脚本和在Linux, UNIX和其他平台上运行得都一样,根本无须任何改动。
- REBOL 引入了方言化的概念。方言是一个小巧有效专门针对特殊领域的子语言。
- REBOL 本意就是要保持小巧——即使他已经包含了数百条函数,几十种数据类型,内置帮助,多种Internet协议、压缩、错误处理、调试控制台、加密和更多。
- REBOL 程序很容易书写。你所需要的仅仅是一个文本编辑器。一个程序可以只有一行也可以是一整个应用程序包含了几十个文件。。同时,你的程序不需要对库和包含做声明。
上手例子
在REBOL中,简单的任务有简单的做法。这里有一些例子:
如果你想尝试这些例子,只要下载REBOL。他确实很小,下载得很快。它不需要任何复杂的安装也不需要任何特殊的类库。他很简单。要运行REBOL,只要点击他的图标。(如果你在使用REBOL/View,在他启动之后点击console图标来打开控制台窗口。)
先尝试一下经典的Hello World例子:
print "Hello World!"
或者,把它作为一个邮件消息发送给一个朋友:
send [email protected] "Hello World!"
要直接从一个网站运行一个脚本
do http://www.rebol.com/speed.r
这个叫本会显示你的计算机有多快。
如果要查看脚本的源代码:
print read http://www.rebol.com/speed.r
如果要保存源代码到一个文件:
write %speed.r read http://www.rebol.com/speed.r
要在本地运行代码,你可以输入:
do %speed.r
当然,你可以用同样的方法保存任何网页:
write %page.html read http://www.rebol.com
要给一个朋友通过邮件发送一个网页:
send [email protected] read http://www.rebol.com
要下载一封REBOL的拷贝,你要指明它是二进制的。像这样:
write/binary %rebol.zip read/binary http://www.rebol.com/downloads/core031.zip
同时,你可以看见REBOL并不关心你代码中的换行。
如果你要把一个目录中的所有文件作为邮件发送(假设他们都是文本文件):
files: load %letters/ foreach file files [send [email protected] read file]
但是,也许你只想发送包含单词REBOL的文件:
foreach file files [ text: read file if find text "REBOL" [send [email protected] text] ]
如果你想把那些文件连成一个单独的消息并发送出去:
message: copy "" foreach file files [append message read file] send [email protected] message
进阶例子
如果要查看你所有的email消息但是不把他们从服务器上删除,这样:
print read pop://luke:[email protected]
当然,你也许想一次性都读出他们:
mail: open pop://luke:[email protected] foreach message mail [ print message ask "Next? " ] close mail
要删掉所有包含单词“spam”的邮件:
mail: open pop://luke:[email protected] while [not tail? mail] [ either find first mail "spam" [ remove mail ][ mail: next mail ] ] close mail
当你准备发送一个信息到你的经纪人,信息可以被她的基于REBOL的股票交易程序自动处理:
send [email protected] [ sell 1000 shares "Microsoft" MSFT at .00 ]
以上的例子用到了REBOL的dialecting(方言化)概念——一种在网络上收发消息的极其有用的技术。
如果你的老板要求你每小时自动发送几个网页作为邮件:
pages: [ http://www.cnet.com http://www.rebol.com/index.html http://www.news-wire.com/news/today.html ] loop 24 [ foreach page pages [send [email protected] read page] wait 1:00 ]
如果你需要摘录并打印网页的标题,你可以这样解析:
page: read http://www.cnet.com parse page [thru <title> copy title to </title>] print title
生成脚本文件
你可以把上述任何例子输入文本编辑器(如Windows上的Notepad)然后保存为一个文件。你可以把这个文件拖至REBOL图标的上方来启动它。
你需要添加一个简短的REBOL头到你的文件的顶端:
REBOL [Title: "Example"]
这个标头表示这个文件是一个REBOL的代码同时可以提供一些有用的文档说明和其他的选项。
你的程序应该看起来像这样:
REBOL [Title: "Example"] print "Hello World!"
如果你正在使用REBOL/View,你也许想在你的脚本的底部添加一行这样你可以看到结果(在窗口关闭之前)。只要在结尾添加一个halt,这样控制台窗口就会开着:
REBOL [Title: "Example"] print "Hello World!" halt
内嵌帮助
如果要在REBOL中获得帮助,输入:
help
你可以查询某个特殊字的信息:
help loop
或者,查找符合一个字符串模式的帮助:
help "mail"
或者,察看REBOL所有的数据类型:
help datatype!
然后你可以查看REBOL中所有的高级函数用:
help function!
当然,还有本地代码、动作和其他类型的函数。
如果你想看高级函数的代码:
source reform
通过查看内嵌函数的代码,你可以了解很多有用的REBOL的编程方法。
仅仅是一个开始
我们希望以上的例子能给你一个好的REBOL的概念。我们在保持REBOL简洁上作了相当多的工作。当然,REBOL远不止这些东西。在,REBOL是一个高级编程语言,它在很多地方都很独特。常常有人说REBOL就像一片湖水,你看到了表面,同时你可以在湖面上尽情欢乐,但这不是湖水的全部。仍然有很多东西需要去深入了解。当然,作为初学者你不需要去了解那些东西。当你学到更多的东西,我们希望你能发现REBOL到底能做多少事情。请看一下我们的文档索引如果你想“游”得更深一些。