На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (16) 1 2 [3] 4 5 ...  15 16 все  ( Перейти к последнему сообщению )  
> Функциональное програмирование , Что за зверь такой
    Цитата OpenGL @
    Негативно поахал, или как в той цитате про Ламборджини в деревне?
    Как в той цитате.

    Добавлено
    Вот моя темка о ФП - Сломать шаблон
      Цитата applegame @
      Когда я задался таким же вопросом, то просто пошел и прочитал Learn You a Haskell for Great Good!, после чего немного поахал-поохал и пошел работать на тракторе.

      Бегло просмотрел напоминает логические языки типа пролога, с примесями embeded sql.
      У меня у одного такое ощущение,? Ну и разницы с явой-8 лямдами не увидел,
      таже дама только с другой прической , ;)
      Ну и пока непонятно что с этим языком делать на практике,
        Цитата settler @
        Цитата applegame @
        Когда я задался таким же вопросом, то просто пошел и прочитал Learn You a Haskell for Great Good!, после чего немного поахал-поохал и пошел работать на тракторе.

        Бегло просмотрел напоминает логические языки типа пролога, с примесями embeded sql.
        У меня у одного такое ощущение,? Ну и разницы с явой-8 лямдами не увидел,
        таже дама только с другой прической , ;)
        Ну и пока непонятно что с этим языком делать на практике,

        Императивный язык + элементы функционального программирования - это совсем не то же самое, что чистый функциональный язык. И никогда не будет тем же самым. Функциональный подход - это совершенно иной взгляд на структуру программы. На, тот же Haskell и Prolog чем-то похожи, но общего у них - это декларативный подход. В остальном они разные.
          Цитата Flex Ferrum @
          И никогда не будет тем же самым. Функциональный подход - это совершенно иной взгляд на структуру программы.

          Это когда нету состояния обьекта, так я под веб пишу лет 10, там тоже нет состояние,
          У меня функциональный подход? , Да и где граница между новым подходом и тем что его придумали?
          как глобальное потепление ;)
          Сообщение отредактировано: settler -
            Цитата settler @
            Это когда нету состояния обьекта, так я под веб пишу лет 10, там тоже нет состояние,
            У меня функциональный подход? , Да и где граница между новым подходом и тем что его придумали?
            как глобальное потепление ;)
            Господи, Сирожа, не неси ерунды. ФП это не только иммутабельность и лямбды. Попробуй написать что-нибудь без циклов и без ветвлений.
              Цитата applegame @
              Цитата settler @
              Это когда нету состояния обьекта, так я под веб пишу лет 10, там тоже нет состояние,
              У меня функциональный подход? , Да и где граница между новым подходом и тем что его придумали?
              как глобальное потепление ;)
              Господи, Сирожа, не неси ерунды. ФП это не только иммутабельность и лямбды. Попробуй написать что-нибудь без циклов и без ветвлений.

              Вот да. У прожжённого императивщика вроде меня функциональные языки просто взрывают мозг. Два часа программирования - и мозги сворачиваются в трубочку.
                Пффф. Пять лет шаблонного метапрограмминга без буста, и вуаля.
                Ну или пять лет Лиспа, кому как.
                  Цитата Qraizer @
                  Пффф. Пять лет шаблонного метапрограмминга без буста, и вуаля.
                  Ну или пять лет Лиспа, кому как.

                  А на каком языке ты пишешь функциональщину? Мне опыт с шаблонами мало помогает. Я использую scala. Для себя редко играюсь с haskell'ем
                    Цитата D_KEY @
                    Цитата Qraizer @
                    Пффф. Пять лет шаблонного метапрограмминга без буста, и вуаля.
                    Ну или пять лет Лиспа, кому как.

                    А на каком языке ты пишешь функциональщину? Мне опыт с шаблонами мало помогает. Я использую scala. Для себя редко играюсь с haskell'ем

                    Мне вот тоже мало помог. Одно дело писать так строго определённую часть программы, совсем другое - всю. В конце концов на шаблонах серьёзная логика не наворачивается.
                    Правда сейчас, с новым и будущим стандартом и продвинутыми constexpr'ами всё может несколько поменяться.
                      Цитата applegame @
                      ФП это не только иммутабельность и лямбды. Попробуй написать что-нибудь без циклов и без ветвлений.

                      А что только ? как ты это понимаешь? , только сам ,без ссылки на гугль или вики,

                      Добавлено
                      Цитата Flex Ferrum @
                      Правда сейчас, с новым и будущим стандартом и продвинутыми constexpr'ами всё может несколько поменяться.

                      Новый стандарт даст возможнось эти самиые шаблоны дебагитровать?
                      Че за любовь такая к метапрограмигу?
                      В разработке апликаций шаблоны не очень то и нужны, разве чтоб написать свою инфраструктуру,
                      тех что есть хватает с головой,

                      Если пишешь свой компилятор, как Александреску для Фейсбука, тогда шаблоны - мощный инструмент,

                      Добавлено
                      Цитата D_KEY @
                      Я использую scala. Для себя редко играюсь с haskell'ем

                      И много на ней систем крупный видел,? Какие сервера ее поддерживают ?
                        Цитата Flex Ferrum @
                        Мне вот тоже мало помог. Одно дело писать так строго определённую часть программы, совсем другое - всю. В конце концов на шаблонах серьёзная логика не наворачивается.
                        Дык речь-то не о программе целиком была, а о "без циклов и ветвлений". Плюс полная иммутабельность на чистых функциях. Сначала жёстко, со временем привыкаешь.
                        А вообще, и целиком программы тоже были. Детские, конечно, но всё-таки.

                        Добавлено
                        P.S. А "серьёзная логика" – это какая?
                          Цитата Qraizer @
                          Цитата Flex Ferrum @
                          Мне вот тоже мало помог. Одно дело писать так строго определённую часть программы, совсем другое - всю. В конце концов на шаблонах серьёзная логика не наворачивается.
                          Дык речь-то не о программе целиком была, а о "без циклов и ветвлений". Плюс полная иммутабельность на чистых функциях. Сначала жёстко, со временем привыкаешь.
                          А вообще, и целиком программы тоже были. Детские, конечно, но всё-таки.

                          Добавлено
                          P.S. А "серьёзная логика" – это какая?

                          Ну, я ломал себе мозг парсингом текста и генерацией на базе полученного AST другого текста. Всё это на Haskell.
                            Прикольно. А я – построением Matlab-моделей. Исполнение было, конечно, в рантайм.
                              Цитата applegame @
                              На самом деле я планировал свою фразу как беззлобное подтрунивание, но korvin в последнее время какой-то агрессивный стал.

                              Это всё из-за Джавы и Политики =)

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

                              Добавлено
                              Цитата settler @
                              Ну и разницы с явой-8 лямдами не увидел,
                              таже дама только с другой прической


                              Функция compose в Хаскелле:

                              ExpandedWrap disabled
                                compose :: (a -> b) -> (b -> c) -> a -> c
                                compose f g = \x -> f (g x)

                              где запись
                              ExpandedWrap disabled
                                \x -> f (g x)

                              аналогичен Java'вской
                              ExpandedWrap disabled
                                x -> f(g(x))


                              Покажи пример реализации этой функции на Java-8 с лямбдами. Ты можешь попробовать написать что-то вроде
                              ExpandedWrap disabled
                                public static <A, B, C> Function<A, C> compose(Function<A, B> f, Function<B, C> g) {
                                    return x -> f(g(x));
                                }

                              но этого будет сильно не достаточно, т.к.
                              Consumer<T> — это не Function<T, Void>
                              Supplier<R> — это не Function<Void, R>
                              BiFunction<T1, T2, R> — это не Function<Pair<T1, T2>, R>
                              Predicate<T> — это не Function<T, Boolean>
                              IntBinaryOperator — это не Function<Integer, Integer>
                              и так далее.

                              Этих разных типов в java.util.function 21 штука, ЕМНИП. У каждого свои методы, не всегда совместимые друг с другом, поэтому писать обощённый функциональный код для всего этого зоопарка весьма затруднительно.
                              Всё это подробно описано в статьях, ссылки на которые я давал ранее.

                              С тем же успехом можно сравнивать ООП в Си и в каком-нибудь SmallTalk'е или Eiffel'е.

                              Вот ещё про ФП:

                              https://www.youtube.com/watch?v=E8I19uA-wGY
                                P.S. Чуть не забыл: ссылки на методы, бросающие статически проверяемые исключения нельзя использовать в Stream API, потому что проверяемые исключения являются частью сигнатуры метода, а методы интерфейсов из java.util.function не бросают проверямые исключения, соответственно не совместимы с ними. Т.е., например, OutputStream.this::write — это не Consumer<byte[]>.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (16) 1 2 [3] 4 5 ...  15 16 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0440 ]   [ 15 queries used ]   [ Generated: 27.04.24, 06:05 GMT ]