Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[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 work.
> * It means less to learn because once they find PROBE they've > already found DUMP >
how about: help probe ->> Prints a molded, unevaluated value and returns the same value. similar: ? ?? dump Also !>>help dump 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: ;the code dumpers: copy[] add-dump: func[guard dump-how][ insert dumpers reduce[guard dump-how] ] dump: func[val][ bind dumpers 'val foreach[guard dump-how] dumpers [ if attempt guard [attempt dump-how break] ] :val ] add-dump [true][probe val] ;demo, dumping an object smart ctx: context[type: 'my-type id: 1 lots-of-data: [1 2 3]] dump 1 dump ctx add-dump ['my-type = val/type][ print ["my-type" val/id "has" length? val/lots-of-data "elements"] ] dump 1 dump ctx ;demo-output ;first unsmart 1 make object! [ type: 'my-type id: 1 lots-of-data: [1 2 3] ] ;now smarter 1 my-type 1 has 3 elements
> -- Gregg