Метка: functional programming

Семинары ENETA, июнь 2010

Всем доброго времени суток.

Пользуясь случаем хочу оповестить вас, что 2-го июня ваш покорный слуга имеет честь выступать в рамках ENETA с докладом о функциональном программировании на С#.
Моя первая попытка была не совсем удачной, однако я учёл свои ошибки и постараюсь рассказать всё более доходчиво и продемонстрировать менее сложные примеры. Кому тема интересна — добро пожаловать.

Само событие состоится 2го июня(среда) c 18:00 до 19:30 в зале 316 IT Колледжа по адресу Raja 4c. Мероприятие бесплатное и проводится на эстонском языке. Есть возможность послушать лекцию удаленно, по Live Meeting(клиента можно взять тут).
Регистрация на семинар и на онлайн трансляцию тут.

Список всех июньских мероприятий:

Visual Studio 2010 testimisvahendid, Taavi Kõosaar
Esitluses keskendume uuetele Visual Studio 2010 testimisvahenditele nagu testilugude haldamine (Test Case Management), programmeeritud kasutajaliidese testid (Coded UI tests), manuaalne testimine ja testide jooksutamine ning tulemuste salvestamine ja sidumine töödega Team Foundation Serveris (TFS). Taavi Kõosaar näitab, kuidas Visual Studio 2010 ja TFS 2010 võimaldavad arusaamatusi, üleliigset ajakulu ning ebapiisavat informatsiooni arendaja ja testija koostöös vähendada.
Kuupäev:: 1. juuni
Aeg: 18:00 — 19:30
Koht: Live Meeting
Sihtgupp: arendajad, testijad
Tase: 200
Slaidid/Demo: 50/50

Funktsionaalne programmeerimine C#-is, Juri Mulenko
Viimasel ajal on funktsionaalprogrammeerimine (FP) kuum teema. Juri Mulenko räägib oma ettekandes, mis loomaga on tegemist ja miks see väärib tähelepanu. Igapäevaseid ülesandeid on tihti kergem, kiirem ja arusaadavam lahendada «funktsionaalsel» viisil. Loengu käigus vaatame.NET raamistiku ja C# keele võimalusi ning demome näiteid, mis toetavad FP-stiilis arendamist. Ettekande eesmärgiks on näidata FP võtteid ja innustada kuulajaid seda kasutusele võtma.
Kuupäev:: 2. juuni
Aeg: 18:00 — 19:30
Koht: IT Kolledž ja Live Meeting
Sihtgupp: arendajad
Tase: 200
Slaidid/Demo: 40/60

Code Contracts, Gunnar Peipman
Code contracts ehk koodilepped on uus ja hetkel laboriroti staatuses tehnoloogia .NET maailmas. Koodilepete abil on võimalik defineerida tingimused, mis peavad koodiüksuste jooksutamiseks olema täidetud. Sõltuvalt vajadustest võivad koodilepped sisalduda kompileeritud koodis ja kontrollida tingimusi kõikjal, kus vastav kood jookseb. Kas tegemist on millegagi, mis võiks asendada ühiktestid? Sellele annab vastuse Gunnar Peipman oma loengul. Kuigi koodilepped on noor tehnoloogia, on tegemist paljutõotava lisandiga .NET arendusvahendite peresse.
Kuupäev:: 9. juuni
Aeg: 18:00 — 19:30
Koht: IT Kolledž ja Live Meeting
Sihtgupp: arendajad
Tase: 300
Slaidid/Demo: 30/70

Virtualiseerimisest natuke laiemalt, Meelis Nigols
Kui virtualiseerimine tähendab Sinu jaoks vaid seda, et serveriruumis on vähem serverikaste, siis on aeg natuke järgi mõelda. Kuidas samu tehnoloogiaid veel rohkem ja paremini ära kasutada näiteks kasutaja töölaual? Meelis Nigols püüab selgitada, mida tähendavad lühendid App-V, Med-V, VDI ja ka seda, miks Microsofti jaoks on kaugtöölaud samuti virtualiseerimine.
Kuupäev:: 10. juuni
Aeg: 18:00 — 19:30
Koht: Live Meeting
Sihtgupp: IT-profid
Tase: 200
Slaidid/Demo: 60/40

Сам жду с нетерпением лекции по code contracts от Gunnar Peipman-а. Вкратце, что это такое — тут.

Благодарю за внимание.

Видео: Евгений Холодков. «Clojure как практический Lisp, или как полюбить скобочки.»

Haskell в массы!

Друзья,

вдогонку к теме прошлой встречи, специально для тех, кто хочет «укрепить свой мозг», представляю вниманию базовый курс видео-лекций по Haskell на Channel9. Ведет их Эрик Майер, гуру программирования из Microsoft по книге и слайдам Грахама Хаттона Programming in Haskell. Благодаря видео-лекциям, книга приобрела невероятный интерес и популярность по всему миру (пруфлинк).

Дабы не томить долгой прелюдией, далее список лекций по главам:

  1. Introduction
  2. First steps
  3. Types and classes
  4. Defining functions
  5. List comprehensions
  6. Recursive functions
  7. Higher-order functions
  8. Functional parsers
  9. Interactive programs
  10. Declaring types and classes
  11. The countdown problem
  12. Lazy evaluation
  13. Reasoning about programs

Слайды тут.

Всем приятного просмотра и не менее приятного программирования! 🙂

А на десерт — The Evolution of a Haskell Programmer

з.ы. этот пост будет обновляться по мере добавления новых глав.

Видео: Юрий Муленко. Функциональное программирование на C#

С# — это довольно гибкий язык программирования, в чём мы и убедились послушав доклад Юрия Муленко. Юра рассказал нам про несколько интересных фишек, которые позволяют писать программы на C# в функциональном стиле.


 

В презентации были упомянуты делегаты (указатели на функции), анонимные функции (замыкания), анонимные типы, и LINQ.

Видео: Александр Мочёнов. Дык это же Python!

«Это же Python — восклицал Александр Мочёнов. И действительно — Python — скажем мы. На этом языке можно сделать буквально всё. Python задействован в создании многих проектов, особенно с открытым исходным кодом. Python ещё очень интересен тем, что является мультипарадигменным языком программирования, в частности функциональный стиль никак не чужд Python-программистам.

 

А вот и бонус, несколько неплохих ресурсов по программированию на языке Python:

http://diveintopython.org/ – Старый-добрый Dive Into Python. Open Source Книга. Есть на русском.
http://diveintopython3.org/ – О последней версии питона – v.3. Если вы только-только знакомитесь с языком, то лучше изучайте сразу 3-ий – сообщество это оценит!
http://openbookproject.net//thinkCSpy/ – Интересное чтиво с научным углублением.
http://wiki.python.org/moin/RussianLanguage – всякие русскоязычные ресурсы.

Видео: Андрей Солнцев. Функциональное программирование на Java

Функциональное программирование — это парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций. В функциональном языке, при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат в обоих случаях, входные данные не могут измениться, выходные данные зависят только от входных.
Андрей Солнцев сделал отличную вводную — «ФП для чайников», показал разницу между императивным и функциональным стилями на примере алгоритма бутерброда, а так же рассказал как принципы ФП могут быть применены в программировании на языке Java. Java не предоставляет возможностей для ФП на уровне синтаксиса, и поэтому, приходится пользоваться сторонними библиотеками, такими как Google Collections.

 

Тут нельзя не процитировать Сергея Зефирова (он же thesz):

1. Программы лучше писать на Хаскеле.

2. То, что не получается написать на Хаскеле, лучше генерировать из описания на Хаскеле.

3. И только то, что совсем-совсем невозможно уложить в предыдущие два пункта, надо писать на другом ЯП.

От себя, желаю всем когда-нибудь освоить Хаскель. Как сказал Андрей, «если это не убьёт ваш мозг, то сделает его сильнее».

создано с помощью WordPress & Автор темы: Anders Norén