Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

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

02.12.2019, 13:59. Показов 6711. Ответов 100
Метки нет (Все метки)

Читал или слышал, что те, кто выучил ООП, потом не могут изучить функциональное программирование. Достаточно ли будет изучить функциональное программирование через Python или все равно надо учить другой язык для его усвоения?
На данный момент имею следующий план действий. Изучение структурного программирования по книге с примерами и задачами для тренировки "Python. Введение в программирование" Светланы Шапочниковой". Она дала мне исходный код к книге, к тем примерам, к которым он был. А возможно и по другим книгам, где с ООП не перемешиваются уроки. Уже некоторые учебные курсы на видео и некоторым статьям и отдельные главы из книг изучал, однако от и до с задачами и написанием примеров по памяти знания не закреплял.
Затем изучение функционального программирования, про что задал вопрос. Дополнительно поинтересуюсь лучшими учебными материалами на эту тему.
А затем уже изучение ООП, которое в теории уже изучал по разным видео. Так как не подкреплял практикой, особо сильно не запомнил.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2019, 13:59
Ответы с готовыми решениями:

Функциональное программирование
Написать функцию для нахождения коэффициентов многочлена являющегося производной заданного многочлена (коэффициеты всех многочленов...

Работа с БД и функциональное программирование
Здравствуйте! Ситуация такова. По гайдам на ютубе написано приложение, своего рода приложение-копилка, которая имеет функции ввода и...

Пример программы (функциональное программирование и лямбды)
Здравствуйте. Необходим код какой -либо программы хорошо иллюстрирующей полезность функционального программирования и лямбда функций. Она...

100
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
10.12.2019, 15:22
supmener, чем вы планируете заменить JS?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
10.12.2019, 15:45  [ТС]
Если не возможно что то выделить отдельно в ограниченном виде для отправки форм без перезагрузки страниц из Javascript, если это как то может повлиять на типобезопасность, то буду использовать для этого HTML.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
10.12.2019, 17:17
HTML - это не язык программирования, lol.
0
Эксперт Python
 Аватар для dondublon
4658 / 2078 / 366
Регистрация: 17.03.2012
Сообщений: 10,192
Записей в блоге: 6
10.12.2019, 18:29
supmener,
Цитата Сообщение от supmener Посмотреть сообщение
Язык подбирал по критериям: +Безопасная +Статическая +Сильная +Явная типизация.
То есть вы подбираете язык для "сайтов"? Даже не для "сайта", а для "сайтов"? (Полагаю, речь идёт про фронтенд, а не бекенд.) Увы, мир уже выбрал за вас. Хорошо ли, плохо ли, но выбрал. Собираетесь "бунтовать"?

Потому я и спрашиваю, чего вы хотите, от этого зависит дальнейшая траектория обучения. Если "писать сайты", то вот вам ответ мира - JS. Не голый, конечно, нужны ещё фреймворки + HTML. Если этот ответ вас не устраивает, если вы - ну что ж могу поделать? Но будет забавно, когда вы придёте устраиваться на работу "писать сайты" без JS.

Кстати, JS в итоге тоже оказался неплох для функционального программирования.

Если обратить взор в сторону бекенда - то там тоже, питон, php, вот это всё. Какая-то часть на яве и C#\ASP.NET, да. Но это языки, которые пришли из мира локальных приложений в web. И если их выбирают, то вовсе не за статическую типизаию.

Итак, в итоге могу по вашим желаниям резюмировать:
1. web (делать сайты).
2. static typed. Что почти перпендикулярно п. 1, но с уклоном в противоречие.
3. функциональное программирование. Вообще не в ту степь.
4. поиск всяких экзотических инструментов.
5. а ещё я помню про Аду.

Так что вы уж давайте, определяйтесь. Слишком много хотелок, которые друг с другом не коннектятся, если вообще не противоречат.
1
Эксперт .NET
 Аватар для Usaga
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,650
10.12.2019, 20:04
supmener, вы задаёте слишком много вопросов некоторые из которых просто поражают своей глупостью (особенно про JS).

Я вам рекомендовал уже и повторюсь снова: прекратите искать какие-то серебренные, статически типизированные, пули. Их нет. А в руках дилетанта любой F# превращается в фу. То, что вы возьмёте "самый лучший язык в мире" не сделает вас самым лучшим программистом, а ваш код самым быстрым и надёжным. Получится как всегда получается у новичков.

Если вас так сильно интересует веб, то с ознакомления с вебом и начинайте. Там нет никаких таких языков. Начните со статических страничек на своём диске (без веб-серверов). Когда придёт понимание того, что HTML, CSS и JS есть на клиенте, в браузере, а всякие PHP\C#\Java\Scala\Шмала на сервере и обмен между ними идёт в виде текстовых запросов-ответов, тогда уже можно начинать подбирать язык для бекэнда.

А сейчас это вообще мимо делать, когда вы не можете отличить фронтэнд от бекэнда и не собираетесь JS использовать на клиенте.
3
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
10.12.2019, 20:45  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Но будет забавно, когда вы придёте устраиваться на работу "писать сайты" без JS.
Этот вариант, который подбираю, не планируется с целью устройства на работу. Пока дойдет дело до сайтов, возможно буду думать по другому, не так, как сейчас.
Цитата Сообщение от Usaga Посмотреть сообщение
Там нет никаких таких языков. Начните со статических страничек на своём диске (без веб-серверов). Когда придёт понимание того, что HTML, CSS и JS есть на клиенте, в браузере, а всякие PHP\C#\Java\Scala\Шмала на сервере и обмен между ними идёт в виде текстовых запросов-ответов, тогда уже можно начинать подбирать язык для бекэнда.
Такое понимание уже есть частично, так как статические сайты уже делал.
Разные люди советуют по разному. Я не знаю, почему должен считать, что они не правы, а Вы правы. Думаю, что когда соберу больше информации, смогу принять более правильное решение.
0
Эксперт .NET
 Аватар для Usaga
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,650
10.12.2019, 22:15
supmener, вам люди уже как один советуют начать и перестать собирать информацию обо всём подряд совершенно не понимая вещей, для которых эта информация бесполезна. Я посоветовал начать с веба в виде статики не потому, что я считаю что так правильно, а все остальные - дураки. А потому, что бы вы уже начали хоть с чего-то.

Вы с какого-то обратного конца подходите к делу. Обычно сначала определяются с целями и потребностями, а потом уже выбирают средства и инструменты. А вы фиг знает, что ищите и фиг знает для чего. Но обязательно, что бы самое лучшее и без багов в компиляторе\трансляторе.

Хотите "писать сайты" и уже знаете в каком-то виде питон? Так начинайте на нём! Есть даже фреймворк для этого - django. А может ещё какие. И с базами данных питон работать умеет. В чём проблема-то? Какую информацию вы собираете? Или цель просто болтологией позаниматься?

Все из обсуждаемых тут языков используются в веб-разработке. Какие-то меньше (по разным причинам), типа функциональных или неуправляемых. Но остальные - очень широко. И крупные, сложные и надёжные проекты на них делают. Всё упирается в наличие головы и желания. А ходить выбирать лучшее по бог знает каким выдуманным критериям можно вечно.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
11.12.2019, 09:22  [ТС]
Некогда статикой в вебе заниматься сейчас, так как изучаю основы Python.

Функциональное программирование в C#
0
Эксперт .NET
 Аватар для Usaga
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,650
11.12.2019, 09:35
supmener, тогда нафига эти вопросы про веб, если заниматься им некогда?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
11.12.2019, 10:01  [ТС]
Это на будущее интересуюсь.
0
5044 / 1071 / 149
Регистрация: 29.01.2013
Сообщений: 6,255
11.12.2019, 10:50
supmener, но раз некогда, то почему вы уделяете этому время сейчас?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
11.12.2019, 11:03  [ТС]
Потому что иногда думаю об этом.
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.12.2019, 12:48
Цитата Сообщение от supmener Посмотреть сообщение
Функциональное программирование в C#
Лямбды, замыкания, каррирование, мемоизация, итераторы, генераторы, ленивые вычисления, рекурсия, функции высшего порядка, pattern matching - все это есть и в Python.
(Про Pattern matching соврал, но его частично имитируют через словарь )
И применение всего этого еще не делает автоматически ваш код функциональным (в плане следования парадигме).
Ну а LINQ из C# вы никогда не освоите без довольно серьезного знания самого C#.
Кстати, в Python just for fun даже сделали имитацию (частичную) синтаксиса LINQ для поклонников C#(pylinq)
Хотя, большинству достаточно того, что практически любое LINQ выражение можно и так выразить средствами python:
https://github.com/rogerwcpt/python-linq-samples
1
Эксперт .NET
 Аватар для Usaga
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,650
11.12.2019, 13:04
Цитата Сообщение от supmener Посмотреть сообщение
Это на будущее интересуюсь.
Лучше на текущем сосредоточьтесь. Ещё как разработчик чего-либо не состоялись, а уже в какие-то дали заглядываете.
1
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
11.12.2019, 15:01
По поводу LINQ - вот более новая (и более продвинутая) либа, которая имитирует этот синтаксис в Python.
Linq.py

Добавлено через 1 час 56 минут
Кстати, по поводу языков программирования. Если вас интересует реальное положение вещей в мире, то есть такой уважаемый рейтинг как tiobe-index
(Он оценивает популярность и востребованность языка)
В пятерку лидеров входят Java, Си, Python, C++ и C#.
Это все, кстати, мультипарадигменные языки. Тогда как чисто функциональные языки типа Haskell, F# или Scheme давно находятся на тридесятых позициях.
Через месяц будет объявлен язык года.
TIOBE will announce the programming language of the year next month...Python is top favorite for the title
В 2018 году Python уже был выбран языком года, что показательно.

P.S. Собственно, итожу: хотите изучать функциональные плюшки (а не посадить себя в клетку с ярлычком "функциональная парадигма наше все") - берите любой востребованный мультипарадигменный язык и изучайте.
Механизмы (и суть) функциональных концептов практически одинаковы во всех ЯП и их знание автоматически переносится на другие ЯП. Исключение касается только каких-то особенных (и довольно сложных) плюшек вроде монад, которые другие языки не захотели заимствовать. В той же Scala разработчиков юзающих хитромонадный синтаксис люто ненавидят их коллеги, которым потом приходится это читать :-)
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
11.12.2019, 15:11  [ТС]
Так так и делаю. Только хочу после изучения императивного (процедурного) программирования перед оттачиванием навыков ООП в рамках этого же языка освоить функциональное.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
12.12.2019, 06:00  [ТС]
Цитата Сообщение от supmener Посмотреть сообщение
Библиотека Xoltar toolkit
Автор ответил. Его ответ в переводе:
Этот код довольно старый и больше не поддерживается. Это было, если я правильно помню, для Python 1.4 или, возможно, 1.5. В более поздних версиях Python улучшена поддержка функционального программирования и меньше требуется такая библиотека.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
12.12.2019, 08:34
Цитата Сообщение от dondublon Посмотреть сообщение
Чтобы "делать сайты" - в первую очередь надо javascript
Цитата Сообщение от supmener Посмотреть сообщение
Это то, на чем хочу делать сайты в последнюю очередь.

Цитата Сообщение от supmener Посмотреть сообщение
если это как то может повлиять на типобезопасность, то буду использовать для этого HTML
а ещё css можешь для этого использовать

прекратите эту ересь писать, пожалуйста

Определись, чего хочешь для начала. Если веб - то фронт или бек, хотя бы. А дальше уже будет проще.

С твоими знаниями, на уровне

Python
1
2
if i == 0:
  print(i)
(Ответь, почему я этот пример привёл?)
пока даже задумываться не стоит о ФП...
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
12.12.2019, 09:50  [ТС]
То, что хочу сделать, должно работать на формах.
Вот попробовал, Google поиск работает.
https://addons.mozilla.org/ru/... avascript/
https://chrome.google.com/webs... dggiiccfje
0
Эксперт .NET
 Аватар для Usaga
14353 / 9456 / 1360
Регистрация: 21.01.2016
Сообщений: 35,650
12.12.2019, 09:57
supmener, и причём здесь 100500 тем про функциональное программирование во всех ветках форума?

Добавлено через 44 секунды
Цитата Сообщение от supmener Посмотреть сообщение
То, что хочу сделать, должно работать на формах.
И какая цель выключения JS'а?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2019, 09:57

Криптография, многопоточное программирование, сетевое программирование
Не знаю, с чего начать, подскажите: В этом задании необходимо реализовать клиент-серверное приложение, позволяющее суммировать...

Функциональное программирование
Суть моего задания: найти локальный максимум в вручную заданном массиве. Я написал код в императивном виде, а нужно чтобы он был в...

Функциональное программирование
Задание со вложенными функциями, функциями с параметрами и без. В условии задания написано, что нужно создать функцию с 3-мя...

Функциональное программирование
Вот задание Выделить из заданного перечня чисел последовательность длинной наибольшей длины, состоящий из элементов,...

Функциональное программирование
Изучаю функции на python, необходима ваша помощь. Что не так в коде? Где? Почему? Зачем? Прошу не применять ООП и классы, хочу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru