想这样做:
letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2
但是 pick 不适用于 charset 那么我应该使用 charset 来获取位置 2 的字母?
想这样做:
letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2
但是 pick 不适用于 charset 那么我应该使用 charset 来获取位置 2 的字母?
字符集是“集合”,因此实际上并没有“位置”的概念。使用它们,您可以测试成员资格、进行差分、否定等。但它们只是一种优化。
如果您关心“枚举顺序”,那么执行顺序的是您的枚举器,而不是集合。
请注意来自 http://www.mail-archive.com/rebol-list@rebol.com/msg16432.html的代码
bitset: charset "aaaaybcx"
chars: copy {}
for i 0 (subtract length? bitset 1) 1 [
if find bitset i [append chars to-char i]
]
?? chars
如果您真的关心订单,请考虑保留一个系列(例如字符串!)。例如在你上面的例子中,没有什么能阻止你做:
letter-string: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
letter-set: charset letter-string
pick letter-string 2
然后你得到两全其美!