作者: 機械伯爵
日時: 2003/6/5(07:56)
 機械です。

 判る人には無意味だということもわかり、
判らない人には何の意味があるかわからない、
PythonでSchemeやSmalltalkのブロックを
エミュレートする方法です。

 式だけなら、lambda式が使えますが、代入文が
混じるともう不可能なので、文交じりのブロックを
実行する裏技・・・

>>> def r_lambda(s):
...   s = "def fnc" + s
...   exec s
...   return fnc
...
>>> r_lambda("(a,b):x=a+b;y=x*x;return y")(5,15)
400
>>>

 いや、出来たからなんだとゆーものですが・・・

※二重括弧が極めてかっこ悪い・・・

 ちなみに、for文などのブロックヘッダを二重化する
方法は、まだ考えていません。


/機械伯爵/