Как выбрать букву в кодировке? - PullRequest
0 голосов
/ 04 мая 2010

Хотел бы сделать это:

letters: charset "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
pick letters 2

но выбор не работает с набором символов, так что я должен использовать с набором символов, чтобы получить букву в позиции 2?

1 Ответ

3 голосов
/ 04 мая 2010

Charsets являются "наборами" и, таким образом, на самом деле не имеют понятия "позиция". С их помощью вы можете проверять членство, проводить различия, отрицание и т. Д. Но это всего лишь оптимизация.

Если вы заботитесь о «порядке перечисления», то ваш счетчик следит за порядком, а не за множеством.

Обратите внимание на этот код от 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

Тогда вы получите лучшее из обоих миров!

...