定位:
- 小而全的万能工具箱
- 小于1M,有网络、图形界面,高级语言
- DSL语法强大
- 类似perl,快学快忘
语法特点:
- 没有行分隔符,自动判断语句分割
- 嵌套调用函数(函数参数由其它函数调用得来)时,基本不用括号,自动判断层次
- 如无必要尽量不用各种括号,类似无括号的lisp
- 特殊的赋值、循环语句
- 各种语法糖
- 基本数据类型很多,除了哈希表和字典以外,还有各种tuple,pair,time等,大多是语法糖。
其他
- 程序打包和cgi功能需要收费
- 图形版有一个内置的官方小社区
网址
- 下载 http://www.rebol.com/download.html 注意图形版和服务器版的区别
图形界面(GUI)
- 官方的几种基本部件介绍 http://www.rebol.com/docs/easy-vid.html
- 问题是没有进一步介绍,比如读取和写入控件数值……
- 详细的空间介绍是 http://www.rebol.com/docs/view-guide.html
- 这里用的是一个layout的DSL,不用dslh的话只能先compose出一个包含各种控件的列表,然后view出来……
图形的各种例子
各种控件都很容易理解,看名字就知道了,只有list数据比较复杂
f: layout [ across btn black "ok" field 20x40 "input" return below indent 20 btn btn btn ]
across
转横排(缺省竖排),below
转横排
return
对横排另起一行,竖排另起一列
indent
留空
guide
分区,避免guide前后的部分对齐排列
tab
对齐每行的第一个tab和下一行的第一个tab对齐,第二个tab类推
at 10x20
绝对位置定位
style
定义一种新格式类似html里面
style bt1 btn black "ok" [ do sth ]
bt1 bt1 bt1
var: newtyle []
定义一组名叫var的新style,然后用
styles var
来引入(类似css文件)
按钮的动作
http://www.rebol.com/how-to/btns-cust.html
各种事件处理
http://www.rebol.com/how-to/feel.html
name: text "Merlot" 100x30
button "Change" [name/text: "Cabernet" show name]
点击按钮切换文字
为了快速切换控件内容最好给控件取名(否则就要用函数找,还是类似于html里面的dom)
field控件名就是变量名,text类用name/text
show name
是刷新显示控件,clear
清除内容
view layout [btn "exit" [unview halt]]
关掉窗口的脚本
unview
带参数就是关掉特定view,不带就是当前layout
缺省一次只能打开一个窗口,view/new 会再打开一个
halt
退出当前脚本,quit
是退出整个rebol程序
view layout [ f1: field across b1: btn "change" [f1/text: "12" show f1] btn "print" [try [print f1/text] ] btn "exit" [unview halt] ]
http://www.rebol.org/view-script.r?script=http-tools.r cokkie