[racket] Use of map and eval to evaluate symbol in namespace

From: Henry Lenzi (henry.lenzi at gmail.com)
Date: Sun Aug 3 23:52:56 EDT 2014

Hello Neil -

First of all, I am not attempting tricks. I am doing the best I can,
the way I know how to (I will take the "clever" part as a compliment,
however). I have a few rational requirements, which I have explained.
Foremost among them is code simplicity. I saw no need so far for
parsers or macrology - I have justified this on the basis of the DSL.
As I had not been clear WRT the DSL before, I might have induced
people to make an option for macros. Also, I see a need for a part of
the program source-code to be easily customizable by users (such as,
for example, a Swedish user being able to add his/her own definitions
in simple module files, instead of tinkering with hash tables).

What I'm sensing is that you seem to be concerned about bugs with
Racket Scheme's EVAL. Is that it?
I do not understand what the problem with EVAL is. Would you please
state clearly what the problems are? I am a reasonably sophisticated
reader. You can even point to papers. I might not read them now, but I
even have books on stuff like denotational semantics (what I don't
have is much time, sadly).

Are you concered about using imperative style just on principle or
have you detected a specific issue?

Doesn't the fact that definitions are provided by modules reduce
potential bugs? As I understand it, if I type, e.g., "hctz30" instead
of "hctz25" the run-time environment will bork, as that would not be a
symbol in the read table. Correct?

Doesn't the DSL's rigid syntax reduce potential for bugs? Do you
suggest a formal parser? If so, can you explain the case why a formal
grammar would be a necessity? This is not a grammar/DSL that requires
recursion (in the Chomskyan sense). I don't see the point. Perhaps I'm
wrong. I would feel grateful if you cared to expand on that issue (if
that is an issue).

If there are too many bugs, can you cite one, two or maybe three that
would be of concern?

TIA,
Henry Lenzi
PS: I hope you realize that writing prescriptions by hand is a sure
way to get even more "bugs"...


On Mon, Aug 4, 2014 at 12:18 AM, Neil Van Dyke <neil at neilvandyke.org> wrote:
> I can see how someone might want to do tricks like this, to use the REPL as
> user interface, for tinkering, and that could be very interesting or clever.
>
> However, just to be clear to students and professionals who might stumble
> upon this thread... If I were actually doing this in production for
> pharmaceutical prescriptions/labeling/instructions, then I would be
> concerned about both program correctness and reducing potential for operator
> error to cause failures.  If we were starting with those as key requirements
> for production use, then I think some of this technical discussion might be
> irrelevant to that, since the software might be implemented in a very
> different way.
>
> Neil V.
>

Posted on the users mailing list.