Свертка

Apr 12, 2011 03:42

Похоже, я переживаю вторую волну функционализации мышления :) Первая была в 93-94гг, когда нам в школе объяснили LISP, и мы на нем делали всякие задания. Например, калькулятор рекурсивным спуском. Отголоском был годом позже спецкурс для студентов третьего курса, куда я будучи еще зеленым первокурсником храбро ходил, хотя и не все тогда получалось. ( Read more... )

программирование

Leave a comment

Comments 23

Функциональное программирование keyman April 12 2011, 22:15:44 UTC
Интересно! "Свертка" именуется умным термином "катаморфизм". Но я сторонник более понятных названий. Кстати, твое резюме вполне ожидаемо, тк функциональное программирование вообще входит в дискретную математику. Конечно, тебе виднее, так как у тебя по данной тематике огромный багаж, но мне, как дилетанту, императивная (а точнее процедурная) парадигма программирования видится куда более понятной и наглядной, чем парадигма функционального программирования ( ... )

Reply

Re: Функциональное программирование ushastyi April 13 2011, 06:59:55 UTC
Катаморфизим -- это более общее понятие, взятое из теории категорий. Я намеренно не стал о нем упоминать, чтобы не напугать ( ... )

Reply

Re: Функциональное программирование keyman April 13 2011, 09:31:02 UTC
Меня несколько удивило твое замечание о том, что функциональное программирование -- это часть дискретной математики. На я понял откуда ноги растут, видимо, из википедии
Угадал, оттуда.

с точки зрения математиков в том, что она наиболее строгая, что делает возможным формальную верификацию, преобразования программ и пр. Поэтому математики и специалисты по computer science "любят" функциональные языки.
Я заметил, что любят. Поясни про "формальную верификацию"!

Это очень хорошо, что ты попробовал разобраться в программировании на Scheme. В MIT курс программирования традиционно преподают как раз на Scheme, а не нак промышленных языках, и это, я считаю, правильно.
Книга как раз основана на курсе информатики MIT. Стоит озвучить ее название, вдруг кому пригодится:
"Structure and Interpretation of Computer Programs, 2nd Edition" by Harold Abelson and Gerald Jay Sussman (MIT Press, 1984)

Erlang я не стал упоминать, я так понимаю, что основное в нем -- это concurrency model, а не парадигма программированияНу это не делает его менее ( ... )

Reply

Re: Функциональное программирование ushastyi April 13 2011, 09:58:07 UTC
Формальная верификация -- это доказательство корректности программы, доказательство в математическом смысле. Вообще говоря, любая программа -- это реализация определенного алгоритма, который в свою очередь является моделью некоторого процесса, поэтому возникает естественное желание проверить, насколько реализация совпадает с алгоритмом. Методы формальной верификации на практике используются для военных и космических программ, где ошибка может привести к катастрофе, для криптографии, сетевых протоколов и т.п. Но верифицировать функциональные программы проще по ряду причин.

Винил и ламповый звук сейчас -- это скорее мода, чем второе рождение. А функциональные языки -- это естественная реакция на усложнение задач, стоящих перед программистами. Так мне кажется.

Reply


riki_koen December 19 2011, 00:10:13 UTC
1. Посоветуйте, пожалуйста, хорошую книгу или курс по Скале. Желательно, чтобы без ссылок на Яву. Можно в рамках сборника примеров к курсу ФП. (Имею некий опыт ANSI C, python, Mathematica + какое-никакое математическое образование).

2. Не знакомы ли вы с языком x10?

Reply


Leave a comment

Up