REBOL 语言简介

翻译:ShiningRay @ NirvanaStudio

本文是一篇针对新用户的技术文档。他给出了一个REBOL的简明概述和一个例子。

Quick Facts

  • REBOL 代表基于相关表达式的对象语言(Relative Expression Based Object Language).
  • REBOL 发音为"reb-ol" ,和“rebel with a cause”中的一样。
  • REBOL 是一种消息式的语言。他的主要目的是提供一种轻量级的分步计算和通讯的方法。
  • REBOLCarl 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 luke@rebol.com "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 luke@rebol.com 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 luke@rebol.com read file]

但是,也许你只想发送包含单词REBOL的文件:

foreach file files [
text: read file
if find text "REBOL" [send luke@rebol.com text]
]

如果你想把那些文件连成一个单独的消息并发送出去:

message: copy ""
foreach file files [append message read file]
send luke@rebol.com message

进阶例子

如果要查看你所有的email消息但是不把他们从服务器上删除,这样:

print read pop://luke:r2d2@rebol.com

当然,你也许想一次性都读出他们:

mail: open pop://luke:r2d2@rebol.com
foreach message mail [
print message
ask "Next? "
]
close mail

要删掉所有包含单词“spam”的邮件:

mail: open pop://luke:r2d2@rebol.com
while [not tail? mail] [
either find first mail "spam" [
remove mail
][
mail: next mail
]
]
close mail

当你准备发送一个信息到你的经纪人,信息可以被她的基于REBOL的股票交易程序自动处理:

send broker@sell-it-now.dom [
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 boss@hans.dom 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到底能做多少事情。请看一下我们的文档索引如果你想“游”得更深一些。

[转]REBOL 语言简介相关推荐

  1. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

  2. Go 语言简介(下)— 特性

    希望你看到这篇文章的时候还是在公交车和地铁上正在上下班的时间,我希望我的这篇文章可以让你利用这段时间了解一门语言.当然,希望你不会因为看我的文章而错过站.呵呵. 如果你还不了解Go语言的语法,还请你移 ...

  3. c语言中return的作用_C语言简介

    C语言简介 c语言是人和机器交流的语言. c语言是面向过程的语言 C语言的优点:代码量小.执行速度快.功能强大.编程自由 英语不好能不能学:C语言一共32个关键字,以及为数不多的规则.建议三年级以下学 ...

  4. r语言简介_R语言简介

    r语言简介 R is a language and environment for statistical computing and graphics that is supported by th ...

  5. C++程序设计【一】之 C++ 语言简介

    文章目录 第一章:C++ 语言简介 一.C++ 语言的发展简史 二.C++ 语言的特点 1.与C语言相比,C++语言的优点 2.基本的输入 / 输出 3.头文件和命名空间 4.强制类型转换运算符 5. ...

  6. php语言开始和结束分别为,0055 PHP语言简介和HelloWorld

    0055 PHP语言简介和HelloWorld 作者:PHPYuan 时间:2018-10-01 03:41:29 第3章学习了如何编写JavaScript代码来动态修改网页内容. 虽然JavaScr ...

  7. 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...

  8. lua脚本之lua语言简介以及lua的安装

    本博主不擅于进行文字创作,所以,相当一部分文字皆复制于其他博文.还希望能够得到谅解.  一.Lua语言简介 Lua是一个免费的开源软件,可以免费用于科研及商业.Lua具有一个专家团队在维护和升级,其设 ...

  9. go语言学习:语言简介

    一.Go语言简介 Go语言(或 Golang) 起源于 2007 年,并在 2009 年正式对外发布.Go 是非常年轻的一门语言,它的主要目标是"兼具 Python 等动态语言的开发速度和 ...

最新文章

  1. 十年沉浮,用Python看创业公司消亡史
  2. 饥荒海难机器人怎么用_饥荒海难机器人作用详解 机器人有什么用
  3. Windows 搭建ASP.NET Boilerplate项目开发环境
  4. 理性教育~值得借鉴~
  5. zabbix配置发送报警邮件
  6. 我的高质量软件发布心得
  7. python2.3嵌套if结构:
  8. mvn clean install 与 mvn install 的区别
  9. gff3转mysql_GBrowse的安装和使用
  10. Socket通过读取数据阻塞的解决方案
  11. SVN_SERVER的搭建
  12. bom头mysql_BOM信息头详解
  13. Mac系统 wps/word和endnote关联,导入参考文献
  14. python爬虫-urllib-handler和代理
  15. 使用电脑工具--Mydesk
  16. 让苹果iOS的手机iPhone和电脑Safari浏览器支持油猴脚本
  17. 当有人推荐你读什么书时你是属于哪一种
  18. React-Native 高仿“掘金”App 注册和登录界面
  19. DAY 9 | 自学前端第九天
  20. sp工具中最疼的是_OnRobot推出小型壁虎单垫(SP)夹持器,扩展创新的壁虎夹持器系列...

热门文章

  1. sizeof与strlen的区别
  2. 立体匹配:经典算法Fast Bilateral Solver
  3. Java中加载配置文件方式的总结
  4. excel 公式 单引号 concat_电气计算速度慢?62套自动计算EXCEL表格,输入数据秒出结果...
  5. ubuntu安装卸载cuda toolkit
  6. 计算机辅助英语听说考试系统,声通英语听说正式考试系统
  7. 游戏建模软件哪个好学
  8. mysql备份管家婆_管家婆怎么用SQL恢復以前备份的数据
  9. android电视传屏软件下载,希沃传屏app下载 希沃传屏(投屏软件) for Android V1.1.4.2813 安卓手机版 下载-脚本之家...
  10. Android视频播放器Google Exoplayer