Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/187: Рейтинг темы: голосов - 187, средняя оценка - 4.77
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
28.07.2015, 01:13
Студворк — интернет-сервис помощи студентам
Что мешает, например, реализовать замыканиями тот же месседж-пассинг? Передаёшь замыканию месседж первым аргументом, потом — остальные аргументы, объект готов.
Lisp
1
2
3
4
5
6
7
8
9
10
(define (new-point x y)
  (lambda (msg)
    (cond ((eq? msg 'x) x)
          ((eq? msg 'y) y)
          ((else (error "FAIL!!!"))))))
 
(let ((p (new-point 1 2)))
  (display (p 'x))
  (newline)
  (display (p 'y)))
В SICPе есть разные примеры.

Методы — это как раз плёвое дело. Тем более, месседж-пассинг — само по себе уныло. Ковыряться надо, чтобы сделать иерархию классов, и чтобы подбирать методы по классам, желательно без проблемы ромба.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.07.2015, 01:13
Ответы с готовыми решениями:

ООП или функции
Привет форумчанам! Такой вопрос нарисовался, Везде ли стоит применять ООП ? Например сейчас пишу маленький блог с простеньким...

ООП или Структурный подход?
Доброго времени суток! Могу ли я использовать процедурный подход программирования в PHP для разработки портала бронирование отелей с...

литература и/или статьи по ООП
Предложите литературу или скорее статьи по ООП, но с уклоном в элементарное понимание что это и для чего нужно а не обьяснение 3-х китов...

926
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
28.07.2015, 01:16
_Ivana, на состояния можно реализовать многое, вопрос лишь в затратах. То что я привел - простейший пример для пояснения, да и сказал я то, что хотел сказать. Вопрос же моих знаний лежит вне области вашей компетенции, так что оставьте эту тему.

Добавлено через 45 секунд
helter, ничто не мешает, не спорю.
0
28.07.2015, 01:19

Не по теме:

FraidZZ, понял, ухожу ))) Ошибся, надеялся на адекватность оппонента )

0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
28.07.2015, 01:28
Не ошиблись. Впрочем, ваше дело.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.07.2015, 05:59
Цитата Сообщение от _Ivana Посмотреть сообщение
Ну я не гуру, чтобы просвещать, но если ваши представления о замыканиях ограничиваются приведенным примером счетчика с состоянием, тогда понятны ваши выводы. Я бы предложил наоборот вам придумать пример более интересного объекта, который попытался бы реализовать на замыкании, но некоторым уже плохо от моих примеров кода, и я боюсь вызвать у них рецидив и обострение аллергии.
У некоторых на саму парадигму такая реакция и им просто не место в этой теме. Пусть читают что нибудь более безопасное для их здоровья. А какой объект Вы считаете интересным?
0
28.07.2015, 06:29

Не по теме:

taras atavin, прошу прощения, но меня модератор попросил оставить эту тему, так что не буду в нее постить, да и бессмысленно это :)

0
28.07.2015, 06:34

Не по теме:

Он попросил оставить тему его знаний, а не интересных объектов.

0
Модератор
 Аватар для Curry
5171 / 3535 / 536
Регистрация: 01.06.2013
Сообщений: 7,686
Записей в блоге: 9
28.07.2015, 19:24
Освежил свой склероз по JavaScript-у на тему замыканий. Просто так.
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<html>
<body>
<script language="javascript">
 
'use strict';
 
function MonoidFactory(mzero,mappend){
    return function(container){
        if(!container[Symbol.iterator]){
            container[Symbol.iterator] = function* () {
                for (var i in container) {
                  yield(container[i]); 
                }
            };
        }
        let iterator = container[Symbol.iterator]();
        var sum=mzero;
        while(true) {
          let result = iterator.next();
          if (result.done) break;
          sum=mappend(sum,result.value);
        }       
        return sum;
//      return arr.reduce(mappend,mzero); 
    }
}
 
var summator = MonoidFactory(0,function(a,b){return a+b;});
var multiplier = MonoidFactory(1,function(a,b){return a*b;});
var maxCodeChar = MonoidFactory(' ',function(a,b){
        if(a>b)
            return a;
        return b;
    });
var oddFilter = MonoidFactory([],function(a,b){
        if(b % 2 == 1)
            a.push(b);
        return a;
    });
 
var array = [3,1,4]
say(summator(array));
say(multiplier(array));
say(oddFilter(array));
say(maxCodeChar("abracadabra"));
say(summator({a:3, b:1, c:4}));
 
function say(str){
    document.body.appendChild(document.createTextNode(str+""));
    document.body.appendChild(document.createElement("br"));
}
</script>
</body>
</html>
0
Модератор
 Аватар для Curry
5171 / 3535 / 536
Регистрация: 01.06.2013
Сообщений: 7,686
Записей в блоге: 9
07.08.2015, 10:09
TIOBE Index for August 2015 : Java8 оказалось явно успешной. Это произошло, в основном, благодаря ФП добавленному в последнюю версию.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
07.08.2015, 18:12
KolodeznyDiver, ну не за счёт удаления ООП же
Что, впрочем, неудивительно. ФП вполне себе сочетается с ООП, посему тема некорректна изначально. Было бы что-то вроде "Чистое функциональное VS Императивное программирование", было бы ясно... А так. Тот же Common Lisp вполне сочетает эти парадигмы.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
07.08.2015, 19:06
Цитата Сообщение от FraidZZ Посмотреть сообщение
Тот же Common Lisp вполне сочетает эти парадигмы.
Правда в CL функциональщины как кот наплакал, более правильные примеры: Ocaml, F#, Scala.
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
07.08.2015, 19:15
Цитата Сообщение от korvin_ Посмотреть сообщение
Правда в CL функциональщины как кот наплакал
Да я знаю. Но в принципе, он же всё же мультипарадигменный.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.08.2015, 10:58
Приверженцы функционального программирования что, в серьёз считают, что любую программу можно свести к вычислению математической функции? Пусть тогда расскажут, какие такие функции вычисляют:
1. Браузеры.
2. Веб-серверы.
3. Мейлеры.
4. СУБД.
5. Текстовые процессоры.
6. Электронные таблицы.
7. Драйверы.
8. Архиваторы.
9. САПРы.
10. 2D графические редакторы.
11. 3D редакторы.
12. Текстовые редакторы.
13. Распознавателт текста.
14. Векторизаторы изображений.
15. Антивирусы.
16. Операционные системы.
17. Мастеры презентаций.
18. Программы для видомонтажа.
19. Читалки pdf.
20. Читалки fb2.
21. 1С бухгалтерия.
22. Игры.
23. Скайп.
24. qip.
25. team speak.
Если же программу понимать, как нечто, выполняющее предписанные при разработке операции, то таковые могут быть направлены и на вычисление математической функций, но даже работа калькулятора вычислением одной функции не ограничивается, после её вычисления надо ожидать следующего ввода, а потом продолжать вычисления, а с другой стороны калькулятор можно использовать для вычисления функций в любой последовательности, а в функциональную программу уже заложена конкретная последовательность и если задача меняется, то её придётся переписывать. Получается, что в роли калькулятора здесь - транслятор ФЯП, а программист низведён до уровня пользователя этого калькулятора, только интерфейс усложнён. Ну да, есть и программируемые калькуляторы. Вот только:
1. Тогда функциональным надо противопоставлять стековые языки, а не объектно-ориентированные.
2. Даже программируемый калькулятор должен позволять вводить команды интерактивно, так как иногда этот режим бывает удобнее.

Добавлено через 6 минут
Кроме того, даже когда действительно требуется вычислить в определённой последовательности функции, входные данные для них могут быть сложнее отдельно взятых скалярных чисел, иногда это приводит к тому, что даже для того, чтоб описать, как именно, что и куда требуется ввести, уже приходится предписывать множество не таких уж стандартных операций.
0
Модератор
 Аватар для Curry
5171 / 3535 / 536
Регистрация: 01.06.2013
Сообщений: 7,686
Записей в блоге: 9
10.08.2015, 11:10
Цитата Сообщение от taras atavin Посмотреть сообщение
Приверженцы функционального программирования что, в серьёз считают

Не по теме:

Приверженцы ФП с интересом наблюдают как Вы много букв исписываете в гигантских постах. (Которые никто до конца не дочитывает.)


Приверженцы ФП разделяют алгоритм на чистый и не чистый, так что бы не чистого осталось как можно меньше. Чистый реализуется ФП с его ништяками.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.08.2015, 11:14
Что ещё за мифический нечистый алгоритм? Расскажите ка с этого места по подробнее.
0
Модератор
 Аватар для Curry
5171 / 3535 / 536
Регистрация: 01.06.2013
Сообщений: 7,686
Записей в блоге: 9
10.08.2015, 11:29
Цитата Сообщение от taras atavin Посмотреть сообщение
Что ещё за мифический нечистый алгоритм?
Виноват. Признаю. Хотел написать короче и не точно выразился. Алгоритм, реализуемый только чистыми функциями.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.08.2015, 11:38
А что за чистые функции такие? И какие функции вычисляют перечисленные программы?
0
Модератор
 Аватар для Curry
5171 / 3535 / 536
Регистрация: 01.06.2013
Сообщений: 7,686
Записей в блоге: 9
10.08.2015, 11:52
Цитата Сообщение от taras atavin Посмотреть сообщение
А что за чистые функции такие?

Не по теме:

От гугла отключили?

Вообще то, помнится, ещё в институте проходили.
https://ru.wikipedia.org/wiki/... 0.B8.D0.B8

https://ru.wikipedia.org/wiki/Чистота_функции

Цитата Сообщение от taras atavin Посмотреть сообщение
И какие функции вычисляют перечисленные программы?
Если программы написаны на ФЯ, то там используются (восновном) чистые функции. см. ФЯП или ООП?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
10.08.2015, 11:56
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вообще то, помнится, ещё в институте проходили.
https://ru.wikipedia.org/wiki/... 0.B8.D0.B8
Эйси. К каким чистым функция можно свести перечисленные программы?

Добавлено через 1 минуту
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Если программы написаны на ФЯ, то там используются (восновном) чистые функции. см. ФЯП или ООП?
Так что, нечего что ли сказать?
0
10.08.2015, 12:31

Не по теме:

Цитата Сообщение от taras atavin Посмотреть сообщение
Так что, нечего что ли сказать?
Вы попробуйте почитать, что я Вам написал. Если непонятно, у кого то из нас проблемы, с объяснением или с пониманием.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2015, 12:31

Гавнокоддинг или учить ООП?
Здравствуйте, дело такое, я пишу все свои скрипты в гавнокоддинге. Дело в том, что у меня все работает, что не работает спрашиваю на...

прога или игра ооп
Здравствуйте)Помогите пожалуйста)Нужно в ближайшее время сдать курсовую работу.Требуется сдать программу какую-нибудь либо игру(желательно...

Mysqli ООП или процедурный подход
Вот интересно, услышать мнение специалистов, что лучшие использовать при работе с mysqli ООП или процедурный подход, что больше используют...

Определить, программа с ооп или нет
Здравствуйте)Помогите пожалуйста разобраться с программой)Мне нужно сдать курсовую по объектно-ориентированному языку на С#.Мне здесь...

Изучаю ООП можно или нет так?
Это index: &lt;?php include('classes/database.class.php'); $object = new DB; $nick = &quot;Alex&quot;; $password = &quot;1&quot;; ...


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

Или воспользуйтесь поиском по форуму:
660
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru