0

これをしたい:

letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2

しかし、pick は charset では機能しないので、位置 2 の文字を取得するには charset で何を使用すればよいでしょうか?

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 に答える