一些函数
函数 |
作用 |
probe |
按原始格式显示word内容 |
source |
显示函数代码 |
what-dir |
当前目录 |
list-dir |
当前目录下的内容 |
change-dir |
切换目录 |
size? |
文件大小 |
modified? |
修改时间 |
info? |
文件信息 |
make-dir |
新建目录 |
rebol to json
json.r
rebol-to-json
数组操作
取出series_x第i个元素
pick series_x i
series_x/:i
修改series_x第i个元素
poke series_x i 3
series_x/:i: 1
if / either / unless
case / swithch
for / forall / forskip / foreach / forever
loop / repeat / until / while / break
forall 会给出当前的位置,foreach只是取出当前的值。所以可以在forall循环中修改数组。
forskip 循环一次可以读多个元素
object
重点
自定义语法,数据+代码
递归
参考 函数式编程与Continuation/CPS
有闭包的例子
载入其他文件
do %/d/myfunctions.r
do/args %dalmations.r 101
命令行参数 system/options/args
,system/script/args
编译成.exe
“Compiling” REBOL Programs - Distributing Packaged .EXE Files
面向对象
作为浏览器插件
REBOL as a Browser Plugin
写一个模块
见:Example of a minimal module
Series Functions : 包括 insert / change / remove / reverse 等等
copy 与 deep copy
嵌套block拷一份全新的要用 copy/deep
find/tail 是正着找,find/last 是反着找
find/match 返回的是匹配之后的position
replace/all 是全部替换
通配符
find 与 select
find 是返回匹配位置之后的一个series,select是返回匹配位置之后的一个item
find之后,如果有remove,那么之前find找到的元素位置,有可能失效,得重新find才行
sort 排序
sort/skip 每x个元素分一组,按每组的第1个元素排序
sort/compare 在data后面传入排序函数
集合函数
unique / intersect / union
part / only / dup
数组 array
()
相归于一层解引用
嵌套多层时,需要添加deep
关键字
字符串函数
string functions
参考:reform
参考:string convert
form 与 reform 的区别是,reform 会对block中的变量求值,form直接当字符串用
form / reform 输出合并后的字符串(中间加空格)
join / rejoin 合并后的类型与第一个参数保持一致,如果最后是字符串(中间不加空格)
mold / remold 输出rebol数据格式的字符串
checksum
支持 hash、crc等校验和
路径处理
to-file
把字符串或block转换为file name或file path
split-path
拆分目录、文件名
clean-path
把相对路径换成绝对路径
读写内容
文件操作
函数
local变量
local变量如果是block,重复调用记得用copy
计算
常见math函数
取出对象内容
模块处理
Needs是放在开头的REBOL [ Needs: [ mysql db-gui ] ]
中,指定需要的模块
也可以在代码中使用import [ mysql db-gui ]
,效果同上
do比较简单,就是简单执行脚本,没有import那么多参数
新建模块,导出函数:module defining
使用import的对象:
开发扩展extensions
making extensions 及后续几个页面
端口协议
Ports
Protocols