0

想这样做:

letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2

但是 pick 不适用于 charset 那么我应该使用 charset 来获取位置 2 的字母?

4

1 回答 1

3

字符集是“集合”,因此实际上并没有“位置”的概念。使用它们,您可以测试成员资格、进行差分、否定等。但它们只是一种优化。

如果您关心“枚举顺序”,那么执行顺序的是您的枚举器,而不是集合。

请注意来自 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

然后你得到两全其美!

于 2010-05-04T18:48:23.273 回答