第一篇 如何安装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! |
|
如果你想有一种更特别的方式,则敲入下面的代码,弹出下面的界面。
运行之后,出现上图的界面,多漂亮!这样简单的一句话,出现的效果是令人惊奇的!那你还犹豫吗?赶快投入时间来学习吧,有更令你惊叹的风景等着你呢!
好了,这简单的例子运行完了,你是不是很想知道它的更多的内容呢?且等等,让我们休息休息,然后去风光旖旎的地方,享受它给的快乐……
第三篇 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小时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.货币
可以直接写为美元的形式,如:
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 amultiline 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 yelloworange 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 ] >> printchecking-account/balance $2000.00 这个时候发现新的变量替换了原来的变量。 |
|
我们也可以在原来对象的基础上加上两个全新的变量,形成一个新对象,举个例子:
|
| >>checking-account: make account [ bank: "Savings Bank" last-active: 20-Jun-2000 ] 以上创建了一个新的对象,下面执行语句检查是否成立。 >> print checking-account/bank Savings Bank >> printchecking-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 |
|
爱华网本文地址 » http://www.413yy.cn/a/25101016/308012.html