Talk:Eval

Does Lua have "eval-functionality"? (I just glanced at the docs: http://www.lua.org/manual/5.1/manual.html#2.4.1 : "The unit of execution of Lua is called a chunk...A chunk may be stored in a file or in a string inside the host program" ) teadrinker 23:20, 3 March 2006 (UTC)
 * Yes, you can load and execute any string or file in Lua. The result is a "chunk" (or function in other words). For example:

myFunc = loadstring(aCodeString) myFunc
 * or just:

loadstring(aCodeString) --Loading and executing string at once
 * --Zigmar 19:29, 13 July 2006 (UTC)

This article was previously nominated for deletion. The deletion result was moved to here, and has been removed to: Articles for deletion/Eval --AllyUnion (talk) 03:34, 30 September 2005 (UTC)

Python section
The python section claims that python cannot evaluate statements, only functions. Then the two example show calling eval for statements.

What gives?

Dubwai 15:43, 29 December 2006 (UTC)

I missed that there's a distinction between exec and eval. Ignore.

Dubwai 16:46, 29 December 2006 (UTC)

Jonathan Johnson
The link "Jonathan Johnson on exposing classes to RBScript" looks suspiciously self-promotional to me. Before I included the link to Python documentation, it was the only external link in this article, and it mentions "Jonathan Johnson" as if he is some kind of Computer Science authority (reading his blog you do find out he works for the company that makes RealBasic). If you are reading this, and you agree that it is self-promotion, do erase the link. --Ramalho 03:46, 7 April 2007 (UTC)

Callback
Perhaps it would be better to demonstrate an example of using eval on a callback situation, since it's a legitimate use.

Azraell Zanella 01:11, 18 July 2007 (UTC)

apply yin and yang
This article doesn't quite ever mention that eval and apply are related in a yin and yang fashion: in order to (eval '(f x)) your system must make the critical step (apply f x) to get the actual result. To be clear: the code must convert the string f to a callable function f, and then must apply the callable function f to its arguments! Unfortunately, the article on apply says almost nothing about the computer-sciene meaning of this idea.linas (talk) 07:30, 23 November 2007 (UTC)


 * Never mind, I added a breif paragraph. The theoretically inclined are invited to expand the article on apply. linas (talk) 18:54, 24 November 2007 (UTC)

Mail merge example
The mail merge example shown is unnecessarily using  to return the contents of a string variable to the   function. Unless  has some effect that I'm just not seeing, that code fragment is a bad example for eval use (the last line could just as easily be written as " ").

This is not The Daily WTF. --Btx40 (talk) 16:44, 3 July 2008 (UTC)

4chan
typing eval( into the text field on 4chan will get you a week long ban

though it was worth mentioning —Preceding unsigned comment added by 213.107.10.216 (talk) 22:15, 3 June 2009 (UTC)

Hey
it takes you to the invasion board —Preceding unsigned comment added by 204.112.224.180 (talk) 21:58, 22 February 2010 (UTC)

Do we need to mention semicolon treatment when it's not just true in eval?
JavaScript doesn't require semicolons in any code (though it's bad style to leave them off). Why make special mention of eval letting one leave off the final semicolon? Same goes for any other languages that insert missing semicolons. —Preceding unsigned comment added by 72.174.169.239 (talk) 00:13, 3 September 2010 (UTC)

Reference to D language is dead
The link in references to D's eval function seems dead. Should be updated. — Preceding unsigned comment added by 165.123.202.137 (talk) 18:26, 1 March 2014 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 external links on Eval. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20061010123451/http://livedocs.macromedia.com/flash/8/index.html to http://livedocs.macromedia.com/flash/8/index.html
 * Added archive https://web.archive.org/web/20030322002401/http://www.cs.queensu.ca/software_docs/gnudev/gcl-ansi/gcl_256.html to http://www.cs.queensu.ca/software_docs/gnudev/gcl-ansi/gcl_256.html

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 10:53, 25 September 2017 (UTC)

Is an example of a meta-circular evaluator?
According to this Wikipedia article,  and   are "instances of meta-circular evaluators." Are there any reliable sources that can verify this? Jarble (talk) 19:50, 4 November 2021 (UTC)
 * Yes; they are part of the definition of what a meta-circular evaluator is, so several of the references in that article mention them, such as this one (section 4.1.1) or this other one (chapter 5). Diego (talk) 20:24, 4 November 2021 (UTC)
 * No. The article is talking about language builtin function eval which provides access to the evaluator for the base language and environment.  A meta-circular evaluator implements a new language and environment on top of the base language.
 * I think there is confusion due to the meta-circular evaluator in SICP including a function called eval, however that function is implemented on top of the base language, implements a distinct environment, and the semantics of the language it evaluates are arbitrary (i.e. not tied to the base language).
 * It is easy to test the difference:
 * (define x 1) ;base environment global variable
 * x => 1 ;evaluates x in the base language environment
 * (eval 'x) => 1 ;builtin function also evaluates x in the base language environment
 * (sicp:eval 'x) => undefined or whatever ;the meta-circular evaluator implements a different language and environment to the base language
 * I am removing the meta-circular remarks from the article because the topic of the article they are not relevant. The builtin function eval is not meta-circular evaluation.
 * I will also check the usage of the references mentioned here. They are indeed examples of implementing an evaluator, however in the context of this article they may be irrelevant or introducing unnecessary confusion as they about the special kind of evaluator which is meta-circular. 14.203.187.123 (talk) 04:41, 28 June 2024 (UTC)

Creating Perl variables with eval
In more than 20 years of using Perl, I have found  most useful for creating variables. I propose adding the following paragraph in the Perl section in the article. I could add a specific example with Perl code if that would be deemed helpful.

In Perl (and perhaps other languages mentioned in this article), can be used to create Perl variables. Ravn007 (talk) 17:36, 18 November 2021 (UTC)