LINUX.ORG.RU
ФорумTalks

И кто говорил, что Perl - запутанный?


0

0

Вот исходник на хваленом Питоне, вычисляющий число Pi нужной точности:

import string

def pi(x):
    _ = [0] * 10000

    a = ['@!&ABCDE?FG','_[999','_[998','(_)','while ','\n','\t',
         'return string.join','.append(str','99','.insert','for i in[']
    b = "*A@8]&:_[?77]&BCA_[?70]&:_[?71]&BC!7]F(1,'.')BCD(!7],'')\
        $-!6]<!1]$*G?72,?74,?78,?75,?76,?73]:_[i]&$"\
        "*!9],!5]=0,!2]$*!6]+=1$*A@8]&:!0]&$*if !4]==10:_[?79]&$*if !6]:\
        !7]E(@1]))$*_[@5]&],!5]=@4]&$*@1]=!4"\
        "]BC!4]=!3]+(!9]/10)BC!3]=!9]%10$*@1],!4]=@1]+1,0$*@0]=@9]&BC!9]=@3]&\
        BC_[@5]&]=@2]&BC!5]=@5]&$x$(!1]"\
        "*10)/3$0$0$!2]$0$[]$2$0$0$0$-@0]%@7](_,!5])$-@0]/@7](_,@6]&)$-(!8],@5]\
        &)$-!5]-1$-!5]$-x*!8]-1$-!5]>"\
        "0$-_[!5]-1]*10+(!9]*@6]&)"

    c={}
    for i in range(256):c[chr(i)]=chr(i)
    for i in range(1,len(a)):c[a[0][i-1]]=a[i]
    b = string.join(map(lambda x,_=c:_[x],list(b)),'').split('$')
    r = len(_)-len(b)
    for i in range(r,len(_)):
        _[1],_[2],_[3],=b[i-r],"def f%d(_,x=%d):\n\t"%(i,x),"f%d"%i
        if _[1][0]=='-':exec(_[2]+"return %s\n"%(_[1][1:]))
        elif _[1][0] == '*':exec(_[2]+"%s\n"%(_[1][1:]))
        else: _[3]=b[i-r]
        _[i]=eval(_[3])

    return _[9969](_)

print "PI=",pi(20) 
★★

И что тебе тут не ясно?

troorl ★★
()

Однако, в "99 бутылках" так запутать на Питоне код, как на Перле, так ни у кого и не вышло :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

Дайте человеку язык, в котором, если постараться, можно запутаться - и он в нём запутается.

KRoN73 ★★★★★
()
Ответ на: комментарий от Sphinx

Между прочим именно питоновцы начали обвинять перл в том, что на нем _можно_ такое написать, а на питоне нельзя. Пусть знают, что и на питоне те же "проблемы", если их так можно назвать.

xTERM ★★
() автор топика
Ответ на: комментарий от xTERM

Уважаемый. Вопрос не в том, что можно, а что нет. Вопрос в том, что эти языки располагают кодера к разным стилям программирования, форматирования кода и т.д.

troorl ★★
()
Ответ на: комментарий от troorl

> Вопрос в том, что эти языки располагают кодера

А так же крадут у него носки и выпивают его пиво, когда он отворачивается.

anonymous
()

С ума сойти.... xTERM, это ты сам такое учудил, или где нашёл? Я даже не представляю, что надо принять, чтобы выдать такое.

cthulhu ★☆
()
Ответ на: комментарий от cthulhu

> Я даже не представляю, что надо принять, чтобы выдать такое.

Думаю, 10 лет Перла и кружки пива хватит... Хотя после 10 лет Перла можно и без пива :D

tailgunner ★★★★★
()

Вот простой пример, только с точностью большая беда.

int main(int argc, char* argv[])
{
	long	i;
	double  Pi = 0.0;

	for( i=3000000; i >= 0; i-- ) Pi += ( ( i & 1 ) ? -4.0 : 4.0) / ( 1 + (i<<1) );

	printf("Pi is %lf!\n", Pi);
	return 0;
}

alman ★★★
()
Ответ на: комментарий от alman

>Вот простой пример, только с точностью большая беда.

Тады уж $ echo 'scale=50; a(1)*4'|bc -l
3.14159265358979323846264338327950288419716939937508

KRoN73 ★★★★★
()

Колись, где тут rm -rf запрятан! :-)

anonymous
()
Ответ на: комментарий от KRoN73

ух, клево.

а почему с точностью большая беда?

до тех 25 знаков после запятой, которые я помню все сходится.

и можно объяснение, как твое решение работает? :)

gr_buza ★★★★
()
Ответ на: комментарий от Sphinx

>Ололо atan.

Ну, а ещё вернее - в школе нас когда-то заставляли учить значения тригонометрических функций основных углов. Так вот, tg(45⁰) = 1 :)

KRoN73 ★★★★★
()

Да мало-ли чего какой автозапутывльщик сгенерить может.

madcore ★★★★★
()

все нормально, код вполне читабельный

Torvalds
()

package Earth;sub Greet{
%_=('Y','~');$_='$;=!(Middle
Earth.age~~~<Eart~~~~~~~~~~~~~h
.age)?!(defined$ti~~~~~~~~~~~mez~~~On
e[2])?!(push@time~~~~~~~~~~~~~~~~Zone,loc
~altime())?rotation?~~~~~~~~~~~~~q~~?The Worl
~~d?:q:[\w]::q=[\~~~~~~~~~~~~~~~~~d~a-f]=:q?..~~
~~~?:q:.:;"42b3d3~~~~~~~~~~~~~~~~~~~~~728656c6c6f6
~~~~~0277f627c64672~~~~~~~~~~~~~~~~~~~~~b3072796e647
~~~~~~~42b3b3rg7d"=Ym~~~~~~~~~~~~~~~~~~~\$;~~*\;p~~~~u
~~~~~~~~~sh@_,$&;bless~~~~~~~~~~~~~~~~~~~~~~~~~$c~~~~~~~
~~~~~~~~~o~ntine~~~~~nt~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~s=\~~~~~~~$~~~~~~~~~~~~~~~~~~~~~~~pangaea~~~~
~~~~~~~~~~~~~~~;{l~~~~~~~~~~~~~~~~~~~~~~~~~~~~ocal@_;local$;
~~~~~~~~~~~~~~~~~="o~~~~~~~~~~~~~~~~~~~~~~~~~cean";$^A=(defi
~~~~~~~~~~~~~~~~~~~n~~~~~~~~~~~~~~~~~~~~~~~~~ed$continents)?
~~~~~~~~~~~~~~~~~~~(vec(~~~~~~~~~~~~~~~~~~~~~~$;, YYsplit(\'
~~~~~~~~~~~~~~~~~\',${\$;}~~~~~~~~~~~~~~~~~~~~~~)%3,YYsplit(
~~~~~~~~~~~~~~~~q??,$;)**2-~~~~~~~~~~~~~~~~~~~~~~(($;=Ytr/oa
~~~~~~~~~~~~~~~~eiu//)**2))=~~~~~~~~~~~~~~~~~~~~~~=28160)?q:
~~~~~~~~~~~~~~~~~.::q?!?:\'?~~~~~~~~~~~~~~~~~~~~~~\';}$^A=Ys
~~~~~~~~~~~~~~~~:\Q.\E:pack(~~~~~~~~~~~~~~~~~~~~~~\'h*\',j
~~~~~~~~~~~~~~~~~oin(q(),~~~~~~~~~~~~~~~~~~~~~~~grep{$_=
~~~~~~~~~~~~~~~~~~Ym,$,,}~~~~~~~~~~~~~~~~~~~~~~~split("
~~~~~~~~~~~~~~~~~",@_~~~~~~~~~~~~~~~~~~~~~~~~~~[0]))
~~~~~~~~~~~~~~~~):e~~~~~~~~~~~~~~~~~~~~~~~~~~~gexe
~~~~~~~~~~~~~~~;$d~~~~~~~~~~~~~~~~~~~~~~~~~~~="s
~~~~~~~~~~~~~~ort~~~~~~~~~~~~~~~~~~~~~~~~~~<=
~~~~~~~~~~~~>,~~~~~~~~~~~~~~~~~~~~~~~~~~YY
~~~~~~~~~~~@_~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~"~~~~~~~~~~~~~~~~~~~';;
s,(~|\r|\n|\s),,g;s.Y.\x7e.g;
eval};Greet;'the world';

j262 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.