0

Rebol 2 では、EMPTY で空のビットセットをチェックできますか?

>> empty? make bitset! #{00}
== true

Rebol 3 (Build 21-Feb-2011/0:44:24) では、これは当てはまりません。

>> empty? make bitset! #{00}
== false

バグまたは新しい動作? いずれにせよ、他にどのようにこのテストを行うことができますか? 異なるサイズの空のビットセットは、R2 または R3 のいずれかで等しいと比較されません。

>> (make bitset! #{00}) == (make bitset! #{0000})
== false
4

2 に答える 2

1

新しい動作: >0 ビットのビットセットは空ではありません。ビットが設定されていなくても、クリアされたビットが含まれています。

R3 ではor、指定されたビットセットに空のビットセットを指定して、最初のビットセットが空であるかどうかを調べることができます。つまり、ビット セットがありません。

>> empty? (make bitset! #{00}) or (make bitset! #{})
== true

>> empty? (make bitset! #{0000}) or (make bitset! #{})
== true

便利なショートカットとして、orbinary!の を使用して、次の定義を有効にすることもできます。

bitset-clear?: func [bitset [bitset!]] [empty? bitset or #{}]

繰り返しますが、あなたの例を使用して:

>> bitset-clear? make bitset! #{00}   
== true

>> bitset-clear? make bitset! #{0000}
== true
于 2012-11-20T12:54:26.883 に答える
0

R2 と R3 の間でビットセットが構築される方法の違いの 1 つかもしれません。これは R3 (A111) にも当てはまります。

>> eb: charset []
== make bitset! #{}

>> empty? eb
== true
于 2012-11-19T14:03:35.450 に答える