`
ch0707
  • 浏览: 4306 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
第一篇 如何安装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语言**:融合了传统编程语言和...

    REBOL的实例

    REBOL(Recursive Echo Boot Language)是一种轻量级、动态类型的编程语言,设计目标是简洁、易读且功能强大。它的语法非常独特,注重表达性和交互性,使得编写脚本和构建应用程序变得简单。REBOL的核心理念是“一切...

    Rebol A programmer's guide.pdf

    根据提供的文件信息,我们可以从《Rebol:程序员指南》这本书中提炼出以下关键知识点: ### 书籍基本信息 - **书名**:Rebol – A programmer's guide - **作者**:Olivier Auverlot 和 Peter W.A. Wood - **出版...

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

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

    REBOL代码大全

    REBOL代码大全

    REBOL编程语言 3.0

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

    Creating Business Applications With REBOL

    #### 一、REBOL速成教程介绍 ##### 1.1 安装与运行程序 REBOL是一种功能强大的编程语言,它旨在简化开发流程并使得非专业程序员也能轻松上手。安装REBOL非常简单,只需访问其官方网站下载最新版本的安装包,并按照...

    rebol-view-278-3-1.exe

    rebol-view-278-3-1.exe

    rebol:Rebol解释器的源代码-Source code

    Rebol的社区提供了许多资源,包括论坛、邮件列表、教程和库,帮助开发者更好地理解和使用Rebol。此外,随着开源的推进,还可能出现第三方的扩展和分支,如Red语言,它是对Rebol的一个重写和优化项目。 总之,Rebol...

    通过模拟 退火进行快速网络模块化和角色计算_Rebol_代码_下载

    《通过模拟退火进行快速网络模块化和角色计算——基于Rebol的实现》 网络模块化和角色计算是复杂网络分析中的重要环节,对于理解网络结构、功能以及演化有着深远意义。模拟退火是一种优化算法,常用于解决组合优化...

    rebol-proposals:Rebol提案孵化器

    6. **教育与文档**:完善教程和参考文档,简化新用户的学习曲线。 ### 社区参与 社区成员可以通过以下方式参与到提案过程中: 1. **提交提案**:任何人都可以提出新的想法,只要在项目仓库中创建一个新的拉取请求...

    Rebol:一些Rebol Red实验

    **Rebol与Red:一种独特的编程语言探索** Rebol(REpresentational BYtEcode)是一种轻量级、动态类型的编程语言,由Carl Sassenrath于1997年创建。它以其简洁的语法、小巧的代码体积以及对网络通信和数据表示的...

    rebol-css-validator:Rebol CSS 验证器

    **rebol-css-validator: Rebol CSS 验证器** **一、Rebol 语言简介** Rebol 是一种轻量级的、动态类型的编程语言,由 Carl Sassenrath 在1997年创建。它的设计目标是简洁、易读、易写,并且具有高度的可移植性。...

    vim-rebol:REBOL 3语法高亮

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

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

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

    Rebol-Notation:Rebol 交换格式的正式描述

    **Rebol 交换格式详解** Rebol(REpresentational Boundary OBject Notation)是一种脚本语言,由Carl Sassenrath开发,旨在提供一种简洁、动态且可读性极强的编程语法。Rebol 交换格式是Rebol语言用于数据交换的一...

    very-old-rebol-scripts:一些非常旧的 REBOL 脚本,未维护

    REBOL 是一种轻量级、动态类型的语言,由 Carl Sassenrath 创建,它强调简洁性和可读性。这个“very-old-rebol-scripts”压缩包包含了一些未维护的、非常旧的 REBOL 脚本。这些脚本可能记录了早期 REBOL 的编程实践...

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

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

    Power-Mezz:Rebol脚本的Power Mezz软件包

    **Power-Mezz: Rebol脚本的Power Mezz软件包** Power-Mezz是一个针对Rebol 3编程语言的扩展库,特别是针对其分支Rebol 3 Fork(简称R3-Fork)。Rebol是一种高级、动态类型的脚本语言,由Carl Sassenrath在1997年...

Global site tag (gtag.js) - Google Analytics