Eval
Rubyには式を評価するコンテキストごとに3種類のevalが存在する。eval はその場またはProcやBindingオブジェクト、instance_eval はインスタンス、module_eval(別名はclass_eval)はモジュールかクラス、それぞれのコンテキストで評価を行う。なお、評価コンテキスト変更のためにinstance_evalやmodule_evalを使う場合、文字列でなくブロックを引数とすることができる。
evalの例(メソッドfooのコンテキストで評価している):
instance_eval と module_eval の例:
Pythonでの eval 関数は単一の式を評価する。文を実行することはできないが、文を実行する関数を実行することはできる。exec 文は文を実行することができる。
eval の例(対話モード):
exec の例(対話モード):