[REBOL] Re: On ordinal and cardinal numbers...
From: lmecir:mbox:vol:cz at: 7-Jul-2001 18:09
Hi,
1) I don't know, whether the ATZ and SKIPZ function should differ from each
other?
2) If I use one of Joel's naming conventions, I would prefer, that:
a) for any block (same? block atz block 0) yields true, it should never
yield and error instead
b) INDEXZ? shall never yield an error
c) for any block and any integer - even for integers greater than the length
of the block (equal? i indexz? atz head block i) shall yield TRUE
d) PICKZ should behave as follows:
pickz: function [
[catch]
block
offset [integer!]
/default
handler [block!]
] [err] [
if error? err: try [
return first atz :block offset
] [
either default [
return do handler
] [
throw err
]
]
]
d) the POKEZ function, that should work (in essence) as follows:
pokez: function [
[catch]
block
offset [integer!]
value [any-type!]
/default
handler [block!]
] [err pos] [
if error? err: try [
pos: atz :block offset
return change pos get/any 'value
] [
either default [
return do handler
] [
throw err
]
]
]
3) The LENGTHZ?, function could be implemented as follows:
lengthz?: func [
block
] [
(indexz? tail block) - (indexz? block)
]
Regards
Ladislav