Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 20:57   #11
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
Кстати а что говорят у LUA, проблема с потоками?
Эм, ничего не могу сказать по данному языку. У него тоже функциольная составляющая присутствует?
BOBAH13 вне форума Ответить с цитированием
Старый 11.12.2011, 21:40   #12
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Я прекрасно программирую на PHP в функциональном стиле.

Функциональное программирование изначально превосходит по производительности ООП.
Виталий Желтяков вне форума Ответить с цитированием
Старый 11.12.2011, 23:21   #13
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

А я до конца не понимаю, что это. Вики читал, конечно, но все равно не врублюсь. Дайте посмотреть реальные примеры программ (можно екзешников), написанных на сабже. Вот читаю статьи на хабре про хаскель, но там "решения задач о переправах", "Еще раз о поиске простых чисел" ну и тп. Да такое на 286 програмили в паскале, чего там сложного-то, классические задачи. Хочется реальные коммерческие проекты посмотреть.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 11.12.2011, 23:26   #14
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Tronix Посмотреть сообщение
А я до конца не понимаю, что это. Вики читал, конечно, но все равно не врублюсь. Дайте посмотреть реальные примеры программ (можно екзешников), написанных на сабже. Вот читаю статьи на хабре про хаскель, но там "решения задач о переправах", "Еще раз о поиске простых чисел" ну и тп. Да такое на 286 програмили в паскале, чего там сложного-то, классические задачи. Хочется реальные коммерческие проекты посмотреть.
Github, Google source, SourceForge -> Scala (до сих пор мозг взрывает), Lisp, Haskell, Clojure и др. смотрите засмотритесь
BOBAH13 вне форума Ответить с цитированием
Старый 11.12.2011, 23:33   #15
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Github, Google source, SourceForge -> Scala (до сих пор мозг взрывает), Lisp, Haskell, Clojure и др. смотрите засмотритесь
Не понял. Github, Google Source, SourceForge написан на функциональном языке программирования? Или вы имели ввиду на этих ресурсах искать исходники проектов на функциональных языках?

Ну да не спорю, есть они, типа "крестиков ноликов" и "хеллоу вордов", но только все это попахивает эзотерикой и just for fun. Ровно как и brainfuck, сравнения с которым проводили ранее в этом треде. _РЕАЛЬНЫЕ_ _КОММЕРЧЕСКИЕ_ проекты - где же вы?
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 11.12.2011, 23:42   #16
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Tronix Посмотреть сообщение
Не понял. Github, Google Source, SourceForge написан на функциональном языке программирования? Или вы имели ввиду на этих ресурсах искать исходники проектов на функциональных языках?

Ну да не спорю, есть они, типа "крестиков ноликов" и "хеллоу вордов", но только все это попахивает эзотерикой и just for fun. Ровно как и brainfuck, сравнения с которым проводили ранее в этом треде. _РЕАЛЬНЫЕ_ _КОММЕРЧЕСКИЕ_ проекты - где же вы?
Да я имел ввиду открытие и рассмотрения проектов. А вы действительно думаете, что "реальные коммерчиские" проекты вам прямо с ходу покажут код? ))) я сам не задавался этим вопросом, но думаю если поискать то можно найти какие и на чем написаны.

Для меня тут дело больше не в переходе на чисто функциональный язык, а больше расширить свое сознание и писать на том же Java но уже думаю намного шире. Как я уже не однократно упоминал, lambda вещь и теперь не понима как без нее справлялся раньше.
BOBAH13 вне форума Ответить с цитированием
Старый 11.12.2011, 23:52   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lambda вещь и теперь не понима как без нее справлялся раньше.
Ну к хорошему привыкаешь бысто )
Мне вот тоже к примеру LINQ пришелся по вкусу, даже удивляюсь где раньше были его разработчики...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2011, 00:14   #18
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

2ВОВАН13, Scala не чисто-функциональный язык, а гибридный, то есть в нём можно использовать привычные императивные парадигмы (но лучше не стоит). Да и, в общем-то, не такой сложный, хотя местами, конечно, взрывает мозги своей системой типов. Очень хорошая и доступная книга по Scala: "Programming in Scala" от автора языка (Мартин Одерски). Clojure - это тоже Lisp, а если под Lisp вы имели ввиду Common Lisp, то он вовсе не функциональный).
2VintProg, у Lua свои потоки внутри виртуальной машины(green threads), потому проблемы похожи на те же, что и у всех других интерпретируемых языков.
2Tronix, Функциональный подход довольно прост и фактически является проекцией математики на программирование. Функциональная парадигма не панацея, но она обладает некоторыми техниками, которые, во-первых, позволяют обезопасить программу (отсутствие изменяемого состояния у объектов вычисления и побочных эффектов у функций), во-вторых, часто упростить как написание так и чтение исходных кодов за счёт более декларативного способа задания действий, нежели это позволяет императивный подход.
Очень много известных коммерческих проектов написано на функциональных или гибридных языках, можете поискать в гугле, довольно легко находится, но искать нужно не по языкам Haskell, SML, OCaml и т.д. (хотя и на них многое найти можно), а по Erlang, Scala, Clojure и т.д.
netrino вне форума Ответить с цитированием
Старый 12.12.2011, 02:21   #19
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Цитата:
Функциональное программирование изначально превосходит по производительности ООП.
Смотря с какой точки зрения.


Последнее время, я наблюдаю вопросы в стиле "Как согласуются объекты и ассемблер". Наверное, стоит остановиться на этом подробнее.

1. Несколько формальных определений
(я понимаю, что все это знают, но, точности ради стоит с этого начать)

Переменная - непрерывная область памяти, имеющая тип. Обычно, имеет имя.
Тип переменной - размер и формат данных, которые хранятся в этой переменной.
Массив - последовательный набор переменных одного типа. Размер массива - фиксирован. Используется одно общее имя на весь массив. Отдельные переменные внутри массива идентифицируются по комбинации имени массива и индекса переменной внутри массива.
Структура - последовательный набор переменных произвольного типа. Отдельная переменная внутри структуры называется полем или членом структуры. У каждого поля есть свое имя. Имя всей структуры является именем типа.

Как правило, массивы используются как переменные, а структуры - как составные типы (хотя никто не мешает объявить тип-массив или создать переменную-структуру, не назначая ей имя типа. В этом случае, она называется анонимной структурой).

Пока все понятно? Хорошо, переходим к коду и объектам.
На уровне кода, разницы между объектом и структурой просто нет. В C++, вся разница между структурой и объектом сводится к тому, что поля структуры, по умолчанию, объявлены как public, а поля объекта - как private. На этапе кодогенерации, struct и class полностью равнозначны.

Необходимое пояснение. Говоря "объект", я подразумеваю экземпляр класса. Т.е. класс - это тип объекта (описание порядка и формата полей). Поскольку далее идет рассказ о данных в памяти, а не о их описании, я использую термин "объект".
отрывок 11% от статьи listener-а.


Как правило на производительность влияет компилятор. MSVC 2010 Ultimate - очень хорошо с этим справляется(но ему можно так же и помогать). У человека должен быть свой стиль написания кода. А сейчас еще и выйдет MSVC 2012, так это огонь!

Последний раз редактировалось VintProg; 12.12.2011 в 02:27.
VintProg вне форума Ответить с цитированием
Старый 12.12.2011, 02:53   #20
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
2ВОВАН13, Scala не чисто-функциональный язык, а гибридный, то есть в нём можно использовать привычные императивные парадигмы (но лучше не стоит). Да и, в общем-то, не такой сложный, хотя местами, конечно, взрывает мозги своей системой типов. Очень хорошая и доступная книга по Scala: "Programming in Scala" от автора языка (Мартин Одерски). Clojure - это тоже Lisp, а если под Lisp вы имели ввиду Common Lisp, то он вовсе не функциональный).
2VintProg, у Lua свои потоки внутри виртуальной машины(green threads), потому проблемы похожи на те же, что и у всех других интерпретируемых языков.
2Tronix, Функциональный подход довольно прост и фактически является проекцией математики на программирование. Функциональная парадигма не панацея, но она обладает некоторыми техниками, которые, во-первых, позволяют обезопасить программу (отсутствие изменяемого состояния у объектов вычисления и побочных эффектов у функций), во-вторых, часто упростить как написание так и чтение исходных кодов за счёт более декларативного способа задания действий, нежели это позволяет императивный подход.
Очень много известных коммерческих проектов написано на функциональных или гибридных языках, можете поискать в гугле, довольно легко находится, но искать нужно не по языкам Haskell, SML, OCaml и т.д. (хотя и на них многое найти можно), а по Erlang, Scala, Clojure и т.д.
Спасибо) ну я в курсе честно говоря, я и говорил, что собственно интересны более ООП с функциональной состовляющей )) ну не знаю, Scala, я все еще когда желание появляется пытаюсь ее наскоками взять, не дается пока толком

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение со скоростью света и быстрее скорости света - Сверхсветовое движение Alar Свободное общение 354 13.11.2011 21:32
Движение колец и Движение линий сверху Iren1993 Помощь студентам 2 07.11.2011 19:48
функциональное программирование - начало Индустриальный Общие вопросы C/C++ 1 13.02.2010 14:36
Движение dampirik Общие вопросы C/C++ 15 10.10.2009 18:47