これをしたい:
letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2
しかし、pick は charset では機能しないので、位置 2 の文字を取得するには charset で何を使用すればよいでしょうか?
これをしたい:
letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2
しかし、pick は charset では機能しないので、位置 2 の文字を取得するには charset で何を使用すればよいでしょうか?
文字セットは「セット」であるため、実際には「位置」の概念はありません。それらを使用すると、メンバーシップをテストしたり、差分をとったり、否定したりできます。しかし、それらは単なる最適化です。
「列挙順序」が気になる場合は、セットではなく、順序を強制するのは列挙子です。
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
そうすれば、両方の長所を活かすことができます。