Suggested enhancement

new topic     » topic index » view thread      » older message » newer message

I had previously made a suggestion for something equivalent to
  BASIC's "CHAIN" statement; several people gave some quite
  useful suggestions as to how roughly equivalent functionality
  could be implemented.  I have been using them, with acceptable
  results (though I still think a CHAIN would be marginally
  better).

  Today, however, inspiration walked up behind me and whacked me
  upside the head with a two-by-four, which leads to an Idea
  that I think, if implemented, would be quite a nifty (dare I
  say "elegant") enhancement to Euphoria:

  Allow a procedure/function call "execute" (or something along
  those lines) which takes a sequence of characters forming
  valid Euphoria statements, and returns whatever executing
  those statements results in - or nothing at all, if there's no
  return value in the statements.  This would allow:

  1. A CHAIN facility - read a Euphoria program text into the
           variable foo, then "execute(foo)".

  2. A macro facility for any Euphoria program - let the user
           define macros using Euphoria, and any interface that
           the program author feels is best for the purpose,
           then "execute(macrovariable)".

  3. A procedural parameter capability - you could write highly
           generic routines without needing to redefine
           procedures or functions for (for example)
           comparisons. "function sort(fooseq, compareproc) ...
           if execute(compareproc) = -1 then ..."

  4. A dynamic code facility - since "includes" are idempotent,
           and cannot be done except at the absolute top level
           of the program, there's no simple way of defining
           what gets done "on the fly" such that you can have
           the Euphoria-knowledgeable user instruct you as to
           how to handle unforseen situations, and be able to
           implement those solutions immediately (i.e., without
           shutting down and restarting the program).
           "while 1 do ... userproc = ... execute(userproc) ..."

  Comments?  Questions?  Discussion?

 =========================================================================
Jeff Zeitlin                                      jeff.zeitlin at execnet.com
---
 ~ OLXWin 1.00b ~ I have seen the future and it is now the past.

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu