fizzbuzz.py

Ето как бих решил FizzBuzz проблема, в оригиналния му вариант, където дори принтираме, вместо да връщаме речник:

for n in range(1, 101):
    if n % 3 == 0 and n % 5 == 0:
        print ‘FizzBuzz’
    elif n % 3 == 0:
        print ‘Fizz’
    elif n % 5 == 0:
        print ‘Buzz’
    else:
        print n

Просто, нали? Но да мотивирам това решение:

Continue reading

Python @ FMI

От известно време не съм писал – разходката до Стокхолм бе бая тегава, особено след изпуснатия полет и преспиването във Варшава. А като се върнах бях залят от задачи, една от които бе курса по Python във ФМИ. И тъй като днес е „юбилейната“ четвърта лекция (сиреч две седмици), викам да драсна няколко реда по въпроса. Continue reading

Unit тестове #1

Може би това, което най-често ми се налага да обяснявам на приятели/колеги е какво представляват unit тестовете и защо за бога си усложняваме живота като ги пишем. Наистина, когато за първи път започнах да работя и големия лош TL ми каза да пиша „тестове за кода на проекта“, бая се оцъклих. Дълго време гледах тъпо JUnit апито и се чудих какво по дяволите се иска от мен да направя с него и по какъв начин това ще помогне на проекта. Но както казват, мъдростта идва с времето – след месец-два не просто му бях хванал цаката, но вече въобще не мога да си представя разработката на сериозно приложение от екип, без да се пишат тестове. И понеже това ми е любима тема, ще се опитам да драсна едно „цикълче“ от статийки, които да разясняват идеята – или поне как аз я разбирам.

Continue reading

Функционално програмиране

Ако сте посещавали лекции във ФМИ, несъмнено знаете че съществуват и по-екзотични начини за писане на код от Java и C#. Един от тях е функционалното програмиране. Характерно за него са „функции от по-висок ред“ – такива чиито аргументи или връщани стойности също са функции. Един от първите и най-известни езици за функционално програмиране е LISP. Той предлага някои много елегантни решения на доста проблеми, но едва ли ще се сблъскате с него в днешни дни, освен ако не учите във ФМИ или не пишете макроси за emacs. Въпреки, че едва ли някой пише цели приложения на LISP в днешни дни, някои от идеите на функционалното програмирне са съвсем приложими в „модерните“ езици… Continue reading