| Функциональное программирование |
Функциональное программирование всегда привлекало меня в противопоставлении к императивному.
Я очень часто обсуждаю различные аспекты функционального программирования на различных ветках на Базарной площади.
Но хотелось бы собрать всех заинтересованный этой темой в одной ветке.
Я думаю что настало время открыть такую тему. И вот почему.
Исторически функциональное программирование появилось практически вместе с императивным.
Вторым языком после фортрана был лисп.
Но увы, функциональное программирование надолго было уделом исследовательских институтов или специализированных приложений (Искусственный Интеллект)
Конечно не надо считать весь мир дураками из за того что развитие пошло по пути языков Алгол семейства.
Для этого были вполне обьективные причины. Функциональные языки слишком близки к человеку и слишком далеки от машины.
Они сьедают в десятки раз больше рессурсов чем императивные языки.
Вспомните претензии, предявляемые к java - первому императивному языку с виртуальной машиной и сборщиком мусора, толкаемому большими корпорациями в mainstream.
Жутко тормозит, и жрет всю память какая есть. А ведь функциональные языки (далее ФЯ) все без иключения имеют сборщик мусора, виртуальную машину.
Многие из них (семейство лисп) еще и динамические, что только усугубляет положение.
Вполне естественно что появившись более полусотни лет назад они надолго опередилли свое время.
Для широкого распространения ФЯ нужны гигабайты дешевой памяти и гигагерцы дешевых процессоров.
Прошло более 50 лет, прежде чем такие требования к железу стали реальностью.
Это время наступило. СЕЙЧАС.
Добро пожаловать в новую эру программирования.
Jack Of Shadows
Всего в теме 5437 сообщений
Добавить свое сообщение
Отслеживать это обсуждение 
- Средства разработки. Языки программирования.
- Delphi 4 or Delphi 5
- Что приобрести в качестве средства разработки?
- Delphi6
- Delphi vs PowerBuilder
- Сравнение компиляторов
- Вот и вышла Delphi 7... Вы рады?
5437—5428 | 5427—5418 | ...>>> Всего сообщений в теме: 5437; страниц: 544; текущая страница: 1
| № 5437 16-08-2010 04:31 |  |
http://www.intuit.ru/department/pl/funcprog/
Видео курс:"Функциональное программирование"
Автор: Д.В. Сошников
Информация о курсе
Курс знакомит слушателей с парадигмой функционального программирования, в которой решение задач сводится к описанию функций, перерабатывающих некоторые входные данные в выходные и строящихся из более простых функций на основе принципов функциональной абстракции и аппликации. Рассматриваются теоретические основы функционального программирования (лямбда-исчисление, комбинаторная логика, вопросы вычислимости), на примере функционального подхода дается представление о некоторых теоретических разделах компьютерных наук (семантика языков программирования, доказательство программ). С другой стороны курс содержит значительную практическую составляющую, основанную на промышленном языке программирования F# (входит в состав Microsoft Visual Studio 2010), рассматриваются вопросы использования функциональных языков для построения компиляторов, грамматического разбора и т.д.
Курс будет интересен как практикующим программистам и студентам, изучившим основы компьютерных наук, так и математикам. Для программистов на императивных языках знакомство с функциональным подходом позволит расширить сознание, перейти на более чистый (свободный от побочных эффектов) стиль программирования с более высоким уровнем абстракции, научиться эффективно использовать новые возможности современных императивных языков (LINQ, лямбда-выражения и т.д.). Для математиков, функциональное программирование может служить безболезненным введением в компьютерные науки, поскольку в рамках курса мы практически «с нуля» строим (начиная от математических основ, вплоть до реализации интерпретатора/компилятора и описания формальной семантики) язык программирования на базе лямбда-исчисления – раздела дискретной математики.
Цель
Познакомить слушателя с основами функционального программирования как дисциплины, находящейся на стыке программирования и дискретной математики; дать, с одной стороны, практические навыки функционального программирования на используемом на практике языке F#, а с другой – показать связь между теоретическими главами computer science и программированием, осветив некоторые теоретические проблемы информатики (вычислимость, семантика языков программирования, доказательство программ) и показав, как они решаются в функциональном подходе.
Предварительные знания
Строго говоря, предварительных знаний для курса не требуется – возможно изучение программирования, начиная с функционального подхода. Однако более традиционным подходом является изучение основ программирования на базе императивного языка, и затем изучение функционального программирования как альтернативной парадигмы. Курс в большей степени ориентирован именно на такой подход.
| № 5436 18-05-2010 02:35 |  |
Ответ на »сообщение 5434« (чиполинский)
___________________________
Ключевые слова: бубен, шаман, ы-йо!
| № 5435 17-05-2010 23:14 |  |
Ответ на »сообщение 5434« (чиполинский)
___________________________
И ключевые слова у нас теперь другие: святый дух, отче наш, божественный замысел.
Всё это у нас, программистов, есть и сейчас, но пока мы толкового ИИ так и не смогли создать.
Теперь вся надежда лишь на случайные мутации программ и их эволюцию... :о))
| № 5434 17-05-2010 21:27 |  |
Ответ на »сообщение 5433« (Сергей Перовский)
___________________________
Ответ на »сообщение 5432« (Leon )
___________________________
С этим лучше в другую тему. И для начала почитать о теории эволюции.
Ключевые слова: изменчивость, наследственность, отбор.
Что вы, что вы! По нынешним временам на эту тему стоит почитать Библию и порасспрашивать какого-нить батюшку. И ключевые слова у нас теперь другие: святый дух, отче наш, божественный замысел.
| № 5433 16-05-2010 14:40 |  |
Ответ на »сообщение 5432« (Leon )
___________________________
С этим лучше в другую тему. И для начала почитать о теории эволюции.
Ключевые слова: изменчивость, наследственность, отбор.
| № 5432 16-05-2010 12:24 |  |
Как вы думаете, могут ли компьютерные вирусы, согласно теории эволюции
Дарвина, эволюционировать в ИИ (искуственный интелект)?
| № 5431 24-03-2010 05:20 |  |
Ответ на »сообщение 5422« (Jack Of Shadows)
___________________________
Даю на всякий случай ссылки на аглицкие доки:
А я дам на замечательный ресурс от Алексея Отта http://alexott.net/ru/emacs/
У него же перевод тьюториала http://alexott.net/ru/emacs/TUTORIAL.ru
Поэтому все имаксеры первым делом переделывают Capslock под Ctrl.
Я - нет. У меня хитрое переключение раскладок на нем висит.
Я например в дельфях постоянно путаюсь и использую emacs шорткаты.
Когда я работал в винде, я пользовал XKeymacs http://www.cam.hi-ho.ne.jp/oishi/indexen.html
Кстати в дельфи 7 тоже есть емакс шорткаты, но они так по уродски сделаны что не работают соврешенно.
Все, что я видел очень криво эмулирует шорткаты. А они въелись в пальцы и по другому просто некомфортно.
Кстати, если емакс не освоили то и не советую - подсаживаешься сильно. Со временем начинаешь превращать его в ИДЕ, тратишь кучу сил и времени, а нормальный автокомплит, сопоставимый с тем же НетБинсом или Эклипсом, далеко не всегда удается сделать. Но у ИДЕ другая проблема - они неудобны и тяжело затачиваются под твои нужды.
Ответ на »сообщение 5428« (Андрей Пузырь)
___________________________
Провозившись вечер я все-таки поставил себе послений emacs+slime+sbcl
Посмотрите мою конфигурацию, она здесь http://ifile.it/rk0wl4a/emacs.tar.gz В частности emacs-rc-slime.el или на гитхабе у Алексея Отта (ссылки выше) У меня slime работает с несколькими лиспами.
| № 5430 15-03-2010 06:40 |  |
Увы но работаю я именно на делфи)) А лисп для взрыва мозга по выходным :)
| № 5429 14-03-2010 00:10 |  |
Ответ на »сообщение 5428« (Андрей Пузырь)
___________________________
1. sbcl на винде экспериментальный и не поддерживается. Лучше уж clisp.
2. Бросайте вы эту винду, не на дельфях же работаете :))
3. Если от винды не уйти, то ставьте бесплатный VirtualBox, инсталлируйте на него линукс, и уже в нем играйтесь со всякими лиспами.
4. Для работы с лиспом в эмаксе есть классный модуль paredit: http://mumble.net/~campbell/emacs/paredit.el. Он вам сам все скобки открывает и закрывает :))
| № 5428 13-03-2010 04:51 |  |
По прошлому (неудачному) опыту использования аллегро, решил остаться в рамках емакса и некоторого вводного курсав него который дается в pcl.
Кстати может кому-нибудь пригодится: есть перевод документации по емаксу на русский http://www.linux.org.ru/books/GNU/emacs/emacs_toc.html
Прежде всего захотелось сменить цвет фона, белый глаза режет. Что оказалось не так-то просто. Нашел color-theme емакса, попутно выяснив что мой Lisp In A Box древней версии.
Раз древний надо обновить, решил я :) Провозившись вечер я все-таки поставил себе послений emacs+slime+sbcl под винду.
Это особенность поведения sbcl, когда после повторной компиляции функции он выдает варнинг "style-warning: redefining xx in DEFUN" (в REPL)? если я правильно понял что просто предупреждение что старая функция была заменена новой. все бы ничего, но после этого не выдается приглашение "CL-USER>" (режим компиляции что-ли?)
Заменил sbcl на clisp, эта проблема исчезла.
Но выявилась еще парочка. Некоторые комбинации клавиш (описанные в pcl) не работают
C-c C-q - закрыть все скобки
C-c M-q - перевыровнятьвсе выражение
Неужели эти вещи отсутствуют в стандартном slime?
5437—5428 | 5427—5418 | ...>>> Всего сообщений в теме: 5437; страниц: 544; текущая страница: 1
Добавить свое сообщение
Отслеживать это обсуждение 
| Дополнительная навигация: |
|