nobiiru 17.01.2011 06:43 /home

Приведите пример того, что на пистоне можно сделать такого, что на C++ нельзя. Или же такие приемущества пистона перед C++, чтоб я немедленно обмазался пистоном.

1. werehuman 17.01.2011 06:45 lithium

print ", ".join("%d dollar%s" % (i, "s" if i != 1 else "") for i in xrange(1, 10))

2. werehuman 17.01.2011 06:46 lithium

class A():
a = 1

x = A()
try:
print x.a
print x.b
except AttributeError:
print 'no member'

x.b = 2
try:
print x.a
print x.b
except AttributeError:
print 'no member'

3. eurekafag 17.01.2011 06:47 445693131295242494973701

А зачем нам это приводить?

4. werehumaneurekafag /3 17.01.2011 06:47 lithium

just4lulz

5. eurekafagwerehuman /4 17.01.2011 06:47 445693131295242494973701

Тогда уж лучше лиспом обмазываться, у него вообще аналогов превосходящих нет.

6. werehuman 17.01.2011 06:50 lithium

def debug_deco(func):
def tmp(*args, **kwargs):
print "Args:", args, " Kwargs:", kwargs
res = func(*args, **kwargs)
print "Result:", res
return res
return tmp

from math import sqrt

@debug_deco
def sqr(x):
return x*x

@debug_deco
def dist(x1, y1, x2, y2):
return sqrt(sqr(x2 — x1) + sqr(y2 — y1))

d1 = dist(0, 0, 3, 4)
d2 = dist(x1=0, y1=0, x2=12, y2=5)
print d1, d2

7. werehuman 17.01.2011 06:51 lithium

ты там не прихуел еще от аргументов? Про метаклассы тебе лучше не знать пока

8. eurekafagwerehuman /7 17.01.2011 06:55 445693131295242494973701

Бля, достаточно было сказать, что сишка и плюсики не могут в фунпрог и рефлексию (плюсики разве что с Qt и костылями это могут).

9. werehumaneurekafag /8 17.01.2011 06:57 lithium

а теперь по-русски

10. nobiiru 17.01.2011 07:14 /home

Ок. фун.прог. Многие о нем говорят. Но зачем оно? Можете привести пример использования фун.прог на пистоне которые не запилить классикой ООП или же реализация с использованием ООП была бы трудоемкой, не оправданной и т.д.

11. eurekafagwerehuman /9 17.01.2011 07:29 445693131295242494973701

Генераторы списков, filter, map, reduce, лямбды — это фунпрог. getattr, eval — рефлексия. Всего этого в сишке нет и не может быть по дизайну (нет GC, нет JIT-компиляции). Императивщина и фунпрог ортогональны, т.е. не взаимоисключающи. Можно обойтись и без функциональных вещей, но зачастую получится более корявый и трудночитаемый код. Без лямбд и замыканий становится трудновато жить, если привыкнешь, а поддержки в некоем языке нет.

А вообще, можно и на вижуалбейсике писать.

12. werehumannobiiru /10 17.01.2011 07:59

см. /1

Do you really want to delete ?