From: Benjamin Goldberg Date: 2002-11-12T05:26:56+09:00 Subject: Re: A vision for Parrot Darren New wrote: > > Benjamin Goldberg wrote: > > Why would any of these require that strings be eval()ed? > > > > You compile the string to bytecode, *once*, and pass this compiled > > code as the callback for your keystrokes, window events, and async > > file operations. You wouldn't pass a string to be eval()ed -- that > > would be silly. > > Bindings substitute their values. File events get additional > arguments. Etc. So? Pass these in as arguments. There's no need to recompile a procedure for each and every different set of arguments that might be passed to it. That would defeat the point of having procedures in the first place. > > Furthermore, even if one did do something that foolish, the compiler > > needs to be loaded only once... > > I missed your parenthetical comment on first reading. Yes, sorry. Peculiar -- if I'd been reading someone else's description of it, and he didn't say, "(if it's not already loaded)", I would have *assumed* that it wouldn't be loaded if it already had been, *unless* he said something to the contrary (like, "yes, I really do mean reload the compiler from disk each and every time we eval() a string") -- my $n = 2; print +(split //, 'e,4c3H r ktulrnsJ2tPaeh' .."\n1oa! er")[map $n = ($n * 24 + 30) % 31, (42) x 26]