Pull to refresh

Comments 38

Что-то мне кажется многие будут программистами-экспертами.
UFO just landed and posted this here
Это шикарно. Я хоть и не программист, но проникся!
Пока не дошел до программиста-эксперта думал, что принадлежу к «Программирующим уже год на Python».
Угадайте, а это кто? :)

Func<int, int> fact = x => Enumerable.Range(2, x).Aggregate(1, (i, k) => i * k);

fact(6);

Правильно, программист на C# (ранее в универе писавший на Python)…
О… В этом код я себя наконец узнал… :)
Так это не питон был :)
UFO just landed and posted this here
Лично я принадлежу к тому типу, который из всей статьи проникся только кодом на Brainfuck :-)
За версию Windows-программист особое спс! очень улыбнуло! (это я под впечатлением от курса WinAPI в универе)
А почему у хакера '\n' после вызова функции sys.stdout.write()?
Чтобы «приглашение» выводилось с новой строки
...data...[\n]
root@server#
Не, не зачем '\n', а почему он не внутри скобочек?
sys.stdout.write(str+'\n')
А я начинающий пока. Но буду писать, опираясь на Pascal с именами переменных и функций как 1С и комментариями как у веб-программиста. А когда не буду понимать, как написать, буду использовать BrainFuck… Быть может, вырастет-таки ещё один эксперт. :)
template<int n>
struct Fractal
{
    enum{Value=n * Fractal<n-1>::Value}
};

template<>
struct Fractal
{
    enum{Value=1}
};

Fractal<5>::Value;

А так некий С++'шник.
def fact(n)
  (2..n).to_a.inject(1){|a,i| a*i}
end

p fact(6)

Вариант Руби-хакера.

<holywar>
Всё же читаемей питоновского эквивалента, не?
</holywar>
Ну, а некто привыкший к математике мог бы написать как-то так:

def Y(f):
    return f(lambda x: Y(f)(x))

factorial = Y(lambda f:lambda n: 1 if n==0 else n*f(n-1))

print factorial(6)
UFO just landed and posted this here
чёй-то java обошли стороной :)

и не хватает кода индийского программиста, получающего по копейке за каждую строчку кода :)

старая шутка:
if(x == true){
//…
}
else if (x == false){
//…
}
else{
// а вот тут мы рубим бабло
}
здорово!
как python'щику порадовало! :)
«Python'щик — эксперт» какой-то неправильный у Вас. Лучше хотя бы так:
from functools import reduce
import operator
fact = lambda x: reduce(operator.mul, xrange(2, x + 1), 1)
print fact(116)
нафега reduce импортировать?
В Python 3 reduce убрали из __builtins__ в модуль functools.
так а xrange разве не убрали?
xrange превратили в range, убрали полностью range. Ленивость-с.
А код написан для совместимости с python 3. В python 2.7 в functools уже есть reduce.
И да, вместо print fact(116) нужно print(fact(116))
а гугл всё ещё в режиме совместимости с 2.5 :-|
Надеюсь, скоро настанет светлое будущее и многие проекты перейдут на какой-нибудь python 3.3 с JIT-компилятором.
Да, впрочем int можно было заменить на operator, но тут еще добавляется еще одна строка с импортом operator, а хотелось бы вместить в максимум 2 строки :) Хотя Ваш вариант правильнее, ибо можно и с long работать. Но вот, кстати, импорт reduce не нужен.
Узнал свой стиль в Веб-программисте. Это печально
UFO just landed and posted this here
Прямо в точку.
Узнал свои комментарии в веб-программисте, когда экспериментирую с чем-то новым, целые деревья закомментированные получается, как образцы кода.
В реальных задачах такого нет.
Sign up to leave a comment.

Articles