one-liner

Aug. 28th, 2008 03:01 pm
wizzard: (Default)
[personal profile] wizzard
Компилятор - это рекурсивная сюръективная функция, отображающая точки пространства операторов на пространство функций и ошибок.



IronPython 2.0b4
Copyright (c) Microsoft Corporation. All rights reserved.
>>>meta=lambda *x: 'lambda self, *args, **var: (%s,)[-1]' % ', '.join(x)
>>>meta('args[0]+1')
'lambda self, *args, **var: (args[0]+1,)[-1]'
>>>t=eval(meta('args[0]+1'))
>>>t(None, 0)
1
>>>efor=lambda x, e: 'var.__setitem__((%s),(%s)[:]), [(None, ' % (x,e)
>>>efor=lambda x, e: 'var.__setitem__(("enumerator"),(%s)[:]), [(var.__setitem__(%s,eitem), ' % (e,x)
>>>eend=lambda x: ')[-1] for eitem in var["enumerator"]]'
>>>import sys
>>>echo=lambda s: sys.stdout.write('%s\n' % s)
>>>meta(efor("x","[1,2,3]"),"echo(var['x'])",eend())
'lambda self, *args, **var: (var.__setitem__(("enumerator"),([1,2,3])[:]), [(var.__setitem__(x,eitem), , echo(var[\'x\']), )[-1] for eitem in var["enumerator"]],)[-1]'
>>>eval(meta(efor("x","[1,2,3]"),"echo(var['x'])",eend()))
unexpected token ,
>>>efor=lambda x, e: 'var.__setitem__(("enumerator"),(%s)[:]), [(var.__setitem__(%s,eitem) ' % (e,x)
>>>eval(meta(efor("x","[1,2,3]"),"echo(var['x'])",eend()))
<function <lambda$0> at 0x000000000000002D>
>>>t=eval(meta(efor("x","[1,2,3]"),"echo(var['x'])",eend()))
>>>t(None)
name 'x' not defined
>>>efor=lambda x, e: 'var.__setitem__(("%s_enum"),(%s)[:]), [(var.__setitem__("%s",eitem) ' % (x,e,x)
>>>enext=lambda x: ')[-1] for eitem in var["%s_enum"]]' % x
>>>t=eval(meta(efor("x","[1,2,3]"),"echo(var['x'])",enext("x")))
>>>t(None)
1
2
3
[None, None, None]
>>>enext=lambda x: ')[-1] for eitem in var["%s_enum"]][-1]' % x
>>>t=eval(meta(efor("x","[1,2,3]"),"echo(var['x'])",enext("x")))
>>>t(None)
1
2
3
None
>>>

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 28th, 2025 12:57 pm
Powered by Dreamwidth Studios