[REBOL] Re: probe/dump-binary survey
From: nitsch-lists::netcologne::de at: 4-May-2004 4:48
On Montag, 3. Mai 2004 23:23, Gregg Irwin wrote:
> Hi Anton, Andreas, et al
> Any other candidate host functions that map to this functionality?
> GI> What about a refinement on PROBE that makes it produce DUMPed
> GI> output?
probe/dump - longer to type. when i debug i want it short. even shorter than
probe. ?? most of the time. How about a name similar to that? but 'dump would
> * It means less to learn because once they find PROBE they've
> already found DUMP
help probe ->>
Prints a molded, unevaluated value and returns the same value. similar: ? ??
Found these words:
dump-face function! Print face info for entire pane. (for debugging)
dump-obj function! Returns a block of information about an object.
dump-pane function! Print face info for entire pane. (for debugging)
there is a convention to call such functions dump-*. that the integrator is
called 'dump makes sense.
> * You don't have to add extra docs in each one saying how they
> differ, you just doc the refinement that tells how it changes
> the behavior.
that can be done with a naming-convention too. because "help round-" would do
a "wildcard-search". In case of 'round i prefer refinements. In case of 'dump
i would prefer lots of dump-* and dump with a switch. because then its most
easy to add new dumpers. We could even have some support to add new dumpers
on the fly, like
add-dump ['my-type = val/type][dump-my-type]
Now instead of "send" i could not resist to press "hack", and here is:
add-dump: func[guard dump-how][
insert dumpers reduce[guard dump-how]
bind dumpers 'val
foreach[guard dump-how] dumpers [
if attempt guard [attempt dump-how break]
add-dump [true][probe val]
;demo, dumping an object smart
ctx: context[type: 'my-type id: 1 lots-of-data: [1 2 3]]
add-dump ['my-type = val/type][
print ["my-type" val/id "has" length? val/lots-of-data "elements"]
make object! [
lots-of-data: [1 2 3]
my-type 1 has 3 elements
> -- Gregg