`
varsoft
  • 浏览: 2435404 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转]REBOL 语言简介

阅读更多

REBOL 语言简介

翻译: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 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编程语言 3.0

    一个很实用的软件,非常小巧,容易理解。总之,用过就知道了。

    rebol程序设计教程

    REBOL技术包含两个部分: REBOL语言 REBOL语言结合了编程语言和元数据语言(如XML)的概念。 这种结果是产生了一种新的语言,它提供了对现代网络分布应用的更有效解决方案。相比传统的语言,REBOL在更少的代码上...

    Rebol绝对入门编程Rebol Programming For The Absolute Beginner

    本教程演示了使用一种灵活且功能强大的语言Rebol来实现现实世界的编程目标有多么容易。

    help.rebol.org:Rebol 语言官方帮助网站

    Rebol 语言的官方帮助网站。 原型目前在工作 使用 Cheyenne 测试安装 创建 CGI 脚本(就像cp cgi-bin/help.txt cgi-bin/help.cgi ) 下载适合您系统的 Cheyenne 二进制文件chmod +x ...二进制文件并从cheyenne...

    replpad-js:用于Rebol语言的交互式Web控制台(Ren-C分支)

    要获得支持,请访问StackOverflow聊天室或Rebol Discourse论坛: 依存关系ReplPad依赖libRebol.js,这是Ren-C的“轻量级” APIJavaScript版本。 它使用S3上托管的load-r3.js 。 该加载器检测浏览器功能,并知道在...

    红色:红色是受Rebol强烈启发的下一代编程语言,但由于其本机代码编译器,它的使用范围更广,从系统编程到高级脚本和跨平台的React式GUI,同时为并发,全部在零安装,零配置,单个1MB文件中!

    Red具有自己完整的跨平台工具链,具有两个编译器,一个解释器和一个链接器,除了在引导阶段所需的Rebol2解释器外,不依赖于任何第三方库。 完成后,Red将成为。 Red软件堆栈还包含另一种语言Red / System ,它是...

    Red语言:向编程复杂性反击

    Red 是一门新的编程语言,它受到了 REBOL 很大的启发,但由于它有本地代码编译器,Red 的应用领域更加广泛——下到系统编程上到高级脚本,同时提供了对现代的多核 CPU 并发编程的支持。 主要特点为: 函数式、声明...

    vim-rebol:REBOL 3语法高亮

    我将假设需要Vim的REBOL语法突出显示的任何人都已经意识到REBOL是一种谐音语言。 我在REBOL上看到的大多数语法突出显示都淡化了它的谐音性,将其视为DO方言是最重要的。 我想在DO方言和普通谐音之间取得平衡,我想我...

    red语言历史

    Red 是一门新的编程语言,它受到了 REBOL 很大的启发,但由于它有本地代码编译器,Red 的应用领域更加广泛——下到系统编程上到高级脚本,同时提供了对现代的多核 CPU 并发编程的支持。 主要特点为: 函数式、声明...

    rebol:基于语义解析的统计机器翻译

    (注意这与编程语言 REBOL [0] 无关!)依赖关系###Geoquery: WASP -1.0 包括地理查询知识库和用于查询它的脚本。 评估脚本略有修改以产生完整的输出。 这些脚本可以在 data/geoquery/wasp/ 中找到,它们进入 wasp...

    全栈语言的力量——Red语言设计者Nenad Rakocevic专访

    Red 是一门新的编程语言,它受到了 REBOL 很大的启发,但由于它有本地代码编译器,Red 的应用领域更加广泛——下到系统编程上到高级脚本,同时提供了对现代的多核 CPU 并发编程的支持。 主要特点为: 函数式、声明...

    rye:工作进行中rebol + factor + shell启发式语言

    Rye是一种工作/设计进行中的编程语言,它基于Rebol的想法以及来自factor,bash shell和golang的一些想法。 当前,它具有基于WIP golang的解释器。 黑麦一览 :sheaf_of_rice: Rye是谐音的,代码也是Rye的数据。 ...

    从metal到meta(全栈编程语言Red)

    Red 是一门新的编程语言,它受到了 REBOL 很大的启发,但由于它有本地代码编译器,Red 的应用领域更加广泛——下到系统编程上到高级脚本,同时提供了对现代的多核 CPU 并发编程的支持。 主要特点为: 函数式、声明...

    arturo:简单,现代和可移植的解释型编程语言,可高效编写脚本

    Arturo是一种现代编程语言,受到其他各种语言的启发-包括但不限于徽标,Rebol,Forth,Ruby,Haskell,D,SmallTalk,Tcl和Lisp。 该语言的设计遵循一些非常简单明了的原则: 代码只是单词和符号的列表 在需要时,...

    R-Sharp-开源

    R#是基于REBOL的免费编程语言。

    cheyenne:夏安网络服务器

    夏安网络服务器 Cheyenne 是用于 REBOL 编程语言的高端 Web 和应用程序服务器。

    Windows下的文本编辑器-flexedit

    inno, kix, latex, lisp, lot, lout, lua, matlab, metapost, mmixal, nncrontab, nsis, opal, others, pascal, perl, pov, ps, purebasic, python, rebol, ruby, scriptol, smalltalk, specman, spice, sql, tcl, ...

    Unit converter-开源

    用Rebol编写的最好的单位转换器! 什么是Rebol? Rebol是编写软件的最佳语言:简单,跨平台,简单,非常小(500Kb)并且功能强大。 下载Rebol并运行单位转换器(8Kb)。 你可以

    red-json:Red语言的JSON编解码器

    核心工作完成后,与Rebol的最大区别是我们拥有了与system/codecs一起工作的load/as和save/as (请参见%red / environment / codecs /),而不仅仅是创建了to-json/load-json全局函数。 测验 %_json-console.red对...

    EmEditor的120多个语法高亮文件(esy)

    rebol.esy resourcescript.esy sas.esy scala.esy scheme.esy sleep20.esy sleep21.esy sleepybot.esy smk-diff.esy spss.esy sql.esy stata.esy svg.esy synta_cl400.esy syntax_cobol400.esy tcl....

Global site tag (gtag.js) - Google Analytics