第一篇 如何安装REBOL
这两天,总是喜欢在网上看看REBOL相关的教程,可以说,现在迷上了REBOL。可惜,REBOL的教程里面几乎找不到中文的资料,所以,决定在时间之余,把看到的东西总结一下,这样好作为一个入门的过程。
任何一门编程语言,都需要相关的解释器或者编译器才能正确执行,所以下面就REBOL的相关情况做一介绍。REBOL是一种直译式的语言,所以为了正确试用它,必须首先安装解释器。解释器的安装和大多数的解释器或编译器的安装方法一样,下面详细介绍:
1.从http://www.rebol.com/download.html下载解释器REBOL/View
需要注意的是,你也可以用REBOL/Core,但是它并不支持图形界面,而REBOL/View是专门用于图形界面的。同时你会发现REBOL/SDK和REBOL/Command,但是马上会看到那令人生畏的字:“Purchase” 。所以不管怎么说,REBOL/View是你最佳的选择!
2.安装
双击下载文件rebview.exe,会出现一个界面(此时需要的时间比较长,请耐心等待),当界面上出现Console后,用鼠标左键单击,弹出一个对话框,这个对话框就是解释器的界面,在这个地方你就可以敲入可爱的代码,然后出现激动人心的结果… …
实际上,从上面的过程也可以看出来,REBOL不需要安装!
如果你要安装的话,则在Console的提示符下键入“install” ,则出现安装对话框,按照提示安装即可。
从此,就可以安心地工作了,你需要的仅仅是一个简单的代码编辑器,如开源的软件notepad++ 。
第二篇 REBOL入门
或许,你早就想尝试一下,用REBOL写的代码是什么样子呢?接下来,我们就用常见的向世界问好的方式告诉你,REBOL是怎样工作的。
在Console窗口敲入下面的语句,结果你会发现向世界问好的方式是如此简单! >> print "Hello World!"
== Hello World!
如果你想有一种更特别的方式,则敲入下面的代码,弹出下面的界面。
>> alert "Hello World!"
运行之后,出现上图的界面,多漂亮!这样简单的一句话,出现的效果是令人惊奇的!那你还犹豫吗?赶快投入时间来学习吧,有更令你惊叹的风景等着你呢!
好了,这简单的例子运行完了,你是不是很想知道它的更多的内容呢?且等等,让我们休息休息,然后去风光旖旎的地方,享受它给的快乐… …
第三篇 REBOL基本语法
——值类型
先看看REBOL的语法。
REBOL支持很多值类型,比如货币、时间、日期等等。不同的值可以在REBOL中直接书写。
1.数值
REBOL支持整数、小数以及科学计数的数值。如12.33,0.332,1.23E12,但是数值不能过大,否则会出现溢出。如: >> 2.23E400
** Math Error: Math or number overflow
** Where: halt-view
** Near: halt
2.时间
时间是这样写的:小时:分钟:秒,中间用冒号分开。如12:30、12:20:00、0:12.23,如:
>> 0:12.23
== 0:00:12.23
说明后者相当于0小时0分12.23秒。
3.日期
一般用国际上通用的格式来写:日/月/年或年/月/日,日期也可以包括时间和时区,如:
>> 20-Apr-1998
== 20-Apr-1998
>> 20/Apr/1998
== 20-Apr-1998
>> 20-4-1998
== 20-Apr-1998
>> 20/4/1998
== 20-Apr-1998
>> 1998-4-20
== 20-Apr-1998
>> 20-Apr-1998/12:30 ;有时间的日期
== 20-Apr-1998/12:30
>> 20-Apr-1998/12:30-13:30 ;有时区的日期
== 20-Apr-1998/12:30-13:30
4.货币
可以直接写为美元的形式,如: >> $12.34
== $12.34
5.元组
元组指软件的版本、RGB颜色集合、IP地址等,是以点分隔的一系列数据,如:
>> 2.3.0.3.1 ;版本号
== 2.3.0.3.1
>> 255.255.0 ;颜色值
== 255.255.0
>> 199.4.80.7 ;IP地址
== 199.4.80.7
6.字符串
字符串分为两种格式:单行的字符串一定用双引号引起来;但是多行的字符串一定要用一对大括号括起来。需要注意的是,如果字符串中需要双引号这些特殊的字符,则一定用大括号括起来。如:
>> "Here is a single-line string" ;单行文本用双引号即可
== "Here is a single-line string"
>> { Here is a multiline string that
contains a "quoted" string. } ;多行文本需要用大括号
== {Here is a multiline string that
contains a "quoted" string.}
7.邮箱地址 >> info@REBOL.com
== info@REBOL.com
8.统一资源定位符
>> http://www.REBOL.com
== http://www.REBOL.com
>> ftp://ftp.REBOL.com/sendmail.r
== ftp://ftp.REBOL.com/sendmail.r
9.文件名
文件名前面必须前置一个百分号,用来区别其他的词。如
>> %data.txt
== %data.txt
>> %images/photo.jpg ;可以加上路径
== %images/photo.jpg
10.对子
对子用来表示空间的坐标,如显示的位置。两个数字之间用“x”分隔。如
>> 100x50
== 100x50
>> 1024x768
== 1024x768
11.序列号
序列号相当于身份证号码,如电话号码,型号,信用卡号码等。如:
>> #707-467-8000
== #707-467-8000
>> #0000-1234-5678-9999
== #0000-1234-5678-9999
第四篇 REBOL基本语法
——词
词是REBOL的符号。词是不是一个变量决于它是如何被使用的。词也直接用作符号。REBOL没有关键字,对于用什么词和如何使用是没有什么限制的。例如,您可以定义自己的函数“print”来代替语言内置的函数“print”。
词不区分大小写,并可以包含连字符和其他一些特殊字符,如+ , -, ' , * ! , 〜 , & , 。 ,和? 。以下例子是有效的词:
number? time? date!
image-files l’image
++ -- == +-
***** *new-line*
left&right left|right
但是以下的符号不能用于词中:
@ # $ % ^ ,
从上面的内容可以看出,词在REBOL中是非常灵活的。
第五篇 REBOL基本语法
——块
块将代码、列表、数组、表、目录等组合为一个整体。块是一种用指定的顺序来组织数据的系列。
块一定要用一对方括号括起来,在块里面,值和词以任意的顺序组织,而且可以书写在多行上。下面的例子是有效的块示例:
>> [white red green blue yellow orange black]
== [white red green blue yellow orange black]
>> [
Ted ted@gw2.dom #213-555-1010
Bill billg@ms.dom #315-555-1234
Steve jobs@apl.dom #408-555-4321
]
== [
Ted ted@gw2.dom #213-555-1010
Bill billg@ms.dom #315-555-1234
Steve jobs@apl.dom #408-555-4321
]
块通常用来组织代码和数据,如
>> loop 10 [print "hello"]
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
第六篇 REBOL基本语法
——变量
为了定义一个变量,我们必须要用到冒号。如:
>> age: 22 ;定义变量age的值为22
== 22
>> snack-time: 12:32 ;定义变量snack-time的值为12:32
== 12:32
>> birthday: 20-Mar-1997 ;定义birthday的值为20-Mar-1997
== 20-Mar-1997
>> friends: ["John" "Paula" "Georgia"] ;定义friends的值为块
== ["John" "Paula" "Georgia"]
第七篇 REBOL基本语法
——计算
块可以通过计算得到他们的值。块中的值和词都按照从左到右的顺序计算。 >> print age
22
>> print third friends
Georgia
>> loop 10 [prin "*"] ;注意此处并没有换行
**********>>
>> print 2 + 3 * 10 ;注意在操作符和数据之间要有空格
50
上面的例子很有意思,在一般的语言里面,表达式的计算总是按照算法优先的准则进行的,但是在REBOL里面,只有按照从左到右的顺序来计算,所以才有上面奇怪的结果!如果想得到你想要的结果,则要这样计算:
>> print 2 + (3 * 10)
32
第八篇 REBOL基本语法
——函数
REBOL里面的函数是这样定义的:
sum: func [a b] [a + b]
其中,sum是函数名,func用来定义一个新的函数,[a b]是参数表,[a + b]是函数体。举个例子:
>> sum: func [a b] [a + b] ;定义函数sum
>> print sum 2 3
5
对于某些函数,你也许需要局部变量但不要把他们作为参数。你可以使用function代替以上情况中出现的func,像这样定义:
>> average: function [series] [total] [
total: 0
foreach value series [total: total + value]
total / (length? series)
]
其中,average为函数名,function用来定义一个新的函数,[series]为参数表,[total]为局部变量。如:
>> print average [37 1 42 108]
47
第九篇 REBOL基本语法
——路径
下面是典型的文件路径和URL路径:
%source/images/globe.jpg
http://www.REBOL.com/examples/simple.r
实际上,路径可用于从块中选择相应的值,从字符串中提取字符,访问对象中的变量等。如:
>> towns: [
Hopland [
phone #555-1234
web http://www.hopland.ca.gov
]
Ukiah [
phone #555-4321
web http://www.ukiah.com
email info@ukiah.com
]
]
>> print towns/ukiah/web
http://www.ukiah.com
第十篇 REBOL基本语法
——对象
对象是具有确定值的一系列变量的组合。对象用来管理具有复杂行为的数据结构,下面的例子就说明如何用对象来建立银行账户的属性和函数。
account: make object! [
name: "James"
balance: $100
ss-number: #1234-XX-4321
deposit: func [amount] [balance: balance + amount]
withdraw: func [amount] [balance: balance - amount]
]
其中,name、balance、ss-numbe、deposi、withdraw是account对象的局部变量,account对象的变量可以用路径来引用,如:
>> print account/balance
$100.00
>> account/deposit $300 ;调用函数deposit
== $400.00
>> print ["Balance for" account/name "is" account/balance]
Balance for James is $400.00
下面的例子演示了如何在原来的对象的基础上创建一个新的对象,同时给新的对象一个新的变量balance,用来替换原来的变量:
>> checking-account: make account [
balance: $2000
]
>> print checking-account/balance
$2000.00
这个时候发现新的变量替换了原来的变量。
我们也可以在原来对象的基础上加上两个全新的变量,形成一个新对象,举个例子:
>> checking-account: make account [
bank: "Savings Bank"
last-active: 20-Jun-2000
]
以上创建了一个新的对象,下面执行语句检查是否成立。
>> print checking-account/bank
Savings Bank
>> print checking-account/last-active
20-Jun-2000
第十一篇 REBOL基本语法
——文件操作
REBOL对文件的操作相当简单。下面给出一些常用的例子加以说明。你可以这样操作文件:
假设在REBOL的工作路径中有一个名为exam.txt的文件。则
>> data: read %exam.txt ;将文件exam.txt的内容读入变量data
== "This is rebol data!" ;这是文件内容
>> print read %exam.txt ;将文件exam.txt的内容打印出来
This is rebol data!
>> write %exam.txt data ;将变量data中存储的内容写入文件
>> write %exam.txt now ;将当前时间写入文件
>> write/append %exam.txt now ;将当前时间追加到已有文件内容的后面
>> Make-dir %new/ ;在当前目录下创建一个文件夹
== %new/
>> print What-dir ;显示当前工作路径
/D/REBOL/
>> rename %exam.txt %exam1.txt ;更改文件名称
>> delete %exam1.txt ;删除文件
>> print size? %11.txt ;查询文件大小
>> print modified? %11.txt ;查询文件修改时间
7-Nov-2008/8:31:50+8:00
分享到:
相关推荐
### REBOL程序设计教程知识点总结 #### 一、REBOL概述 - **定义**:REBOL是一种轻量级的编程语言和技术,专为分布式计算和通信设计。 - **组成**:REBOL技术由两部分构成: - **REBOL语言**:融合了传统编程语言和...
REBOL(Recursive Echo Boot Language)是一种轻量级、动态类型的编程语言,设计目标是简洁、易读且功能强大。它的语法非常独特,注重表达性和交互性,使得编写脚本和构建应用程序变得简单。REBOL的核心理念是“一切...
根据提供的文件信息,我们可以从《Rebol:程序员指南》这本书中提炼出以下关键知识点: ### 书籍基本信息 - **书名**:Rebol – A programmer's guide - **作者**:Olivier Auverlot 和 Peter W.A. Wood - **出版...
本教程演示了使用一种灵活且功能强大的语言Rebol来实现现实世界的编程目标有多么容易。
REBOL代码大全
一个很实用的软件,非常小巧,容易理解。总之,用过就知道了。
#### 一、REBOL速成教程介绍 ##### 1.1 安装与运行程序 REBOL是一种功能强大的编程语言,它旨在简化开发流程并使得非专业程序员也能轻松上手。安装REBOL非常简单,只需访问其官方网站下载最新版本的安装包,并按照...
rebol-view-278-3-1.exe
Rebol的社区提供了许多资源,包括论坛、邮件列表、教程和库,帮助开发者更好地理解和使用Rebol。此外,随着开源的推进,还可能出现第三方的扩展和分支,如Red语言,它是对Rebol的一个重写和优化项目。 总之,Rebol...
《通过模拟退火进行快速网络模块化和角色计算——基于Rebol的实现》 网络模块化和角色计算是复杂网络分析中的重要环节,对于理解网络结构、功能以及演化有着深远意义。模拟退火是一种优化算法,常用于解决组合优化...
6. **教育与文档**:完善教程和参考文档,简化新用户的学习曲线。 ### 社区参与 社区成员可以通过以下方式参与到提案过程中: 1. **提交提案**:任何人都可以提出新的想法,只要在项目仓库中创建一个新的拉取请求...
**Rebol与Red:一种独特的编程语言探索** Rebol(REpresentational BYtEcode)是一种轻量级、动态类型的编程语言,由Carl Sassenrath于1997年创建。它以其简洁的语法、小巧的代码体积以及对网络通信和数据表示的...
**rebol-css-validator: Rebol CSS 验证器** **一、Rebol 语言简介** Rebol 是一种轻量级的、动态类型的编程语言,由 Carl Sassenrath 在1997年创建。它的设计目标是简洁、易读、易写,并且具有高度的可移植性。...
Vim中REBOL(3)的语法突出显示 我将假设需要Vim的REBOL语法突出显示的任何人都已经意识到REBOL是一种谐音语言。 我在REBOL上看到的大多数语法突出显示都淡化了它的谐音性,将其视为DO方言是最重要的。 我想在DO方言...
要获得支持,请访问StackOverflow聊天室或Rebol Discourse论坛: 依存关系ReplPad依赖libRebol.js,这是Ren-C的“轻量级” APIJavaScript版本。 它使用S3上托管的load-r3.js 。 该加载器检测浏览器功能,并知道在...
**Rebol 交换格式详解** Rebol(REpresentational Boundary OBject Notation)是一种脚本语言,由Carl Sassenrath开发,旨在提供一种简洁、动态且可读性极强的编程语法。Rebol 交换格式是Rebol语言用于数据交换的一...
REBOL 是一种轻量级、动态类型的语言,由 Carl Sassenrath 创建,它强调简洁性和可读性。这个“very-old-rebol-scripts”压缩包包含了一些未维护的、非常旧的 REBOL 脚本。这些脚本可能记录了早期 REBOL 的编程实践...
(注意这与编程语言 REBOL [0] 无关!)依赖关系###Geoquery: WASP -1.0 包括地理查询知识库和用于查询它的脚本。 评估脚本略有修改以产生完整的输出。 这些脚本可以在 data/geoquery/wasp/ 中找到,它们进入 wasp...
**Power-Mezz: Rebol脚本的Power Mezz软件包** Power-Mezz是一个针对Rebol 3编程语言的扩展库,特别是针对其分支Rebol 3 Fork(简称R3-Fork)。Rebol是一种高级、动态类型的脚本语言,由Carl Sassenrath在1997年...