Red 0.5.1 Released

# Red 0.5.1 --新的命令行终端和错误支持

经过漫长的等待,Red终于完成了0.5.1的发布。新版的Red主要带来了新的命令行终端和错误支持,以及bug修复和其他改进。

# 新的命令行终端

  • 提升Unix平台兼容性
  • 更好的命令补全特性
  • 更好的跨平台特性
  • 内建命令历史
  • 可定制prompt
  • 支持ESC中断
  • ...

# 错误支持

Red现在把errors当做一等公民来处理,专门定义了error!数据类型。 官方的例子:

a: 0 if error? err: try [1 / a][print "divide by zero"]

# 排序函数

学过C的都知道,在考试中经常会出现各种排序算法,经常会把他们搞混淆。 Red目前实现了同Rebol相同的sort函数。

例子1:

scores: [2 3 1 9 4 8]
sort scores
== [1 2 3 4 8 9]

例子2:

str: "CgBbefacdA"
sort copy str
== "aABbCcdefg"
sort/case copy str
== "ABCabcdefg"
str
== "CgBbefacdA"

太复杂的例子我也看不懂了,就不列了。

# 新的数据类型和运行时类型检测支持

Red新增了几种数据类型,完整实现了typeset!数据类型。

# Red/System的改进

通过使用catch语句允许捕获过滤后的异常。

Red/System []

catch 100 [
    print "hello"
    throw 10
    print "<hidden>"
]
print " world"

将输出:

hello world

另外Red/System新增了两个预处理指令:#get <path>#in <path> <word>

# Red 0.5.2预告

0.5.2将改进程序运行速度和代码大小,而且这个版本不会花费太长的时间。