|
|
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые форумчане. Функция по вычислению факториала на языке F# выглядит так: Код: c# 1. 2. 3. Как записать такую функцию на Java 8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:05 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
С массой ограничений, но всё же: Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:13 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Из интересного. Лямбда не может ссылаться сама на себя. JLS The transparency of this (both explicit and implicit) in the body of a lambda expression - that is, treating it the same as in the surrounding context - allows more flexibility for implementations, and prevents the meaning of unqualified names in the body from being dependent on overload resolution. Practically speaking, it is unusual for a lambda expression to need to talk about itself (either to call itself recursively or to invoke its other methods), while it is more common to want to use names to refer to things in the enclosing class that would otherwise be shadowed (this, toString()). If it is necessary for a lambda expression to refer to itself (as if via this), a method reference or an anonymous inner class should be used instead . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:16 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvДобрый день, уважаемые форумчане. Функция по вычислению факториала на языке F# выглядит так: Код: c# 1. 2. 3. Как записать такую функцию на Java 8? Да на любой версии. Код: sql 1. 2. 3. 4. 5. 6. Я уж не помню, заменит ли JDK8 реально этот код а более быстрый Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:17 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, то есть записывается не совсем в функциональном стиле. А возможна ли тогда редукция(преобразование как в F# и др.) для таких выражений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:20 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Нет, имеется в виду не просто рекурсия, а как математическое определение факториала, которые позволяют функциональные языки - лямбда-выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:22 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvBlazkowicz, то есть записывается не совсем в функциональном стиле. А возможна ли тогда редукция(преобразование как в F# и др.) для таких выражений? Через Stream API https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html Java не функциональный язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:24 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, теперь есть с чего начать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:26 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
А я правильно понимаю что для человека знающего java и желающего развития, получается лучше изучить java8 чем scala? Это же ему ближе и возможности получается что такие-же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:44 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvА я правильно понимаю что для человека знающего java и желающего развития, получается лучше изучить java8 чем scala? Это же ему ближе и возможности получается что такие-же? Ну, одно другому не мешает. Java 8 - просто и понятно. Но Scala вобрала в себя все возможности функционального мира. Поэтому для расширения кругозора лучше такие осваивать именно её. На developerWorks хорошая серия статей с примерыми на разных функциональных языках для JVM http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=functional thinking: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:47 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvBlazkowicz, то есть записывается не совсем в функциональном стиле. А возможна ли тогда редукция(преобразование как в F# и др.) для таких выражений? В данном случае функциональный стиль не даёт никаких преимуществ. Факториал- крайне плохой пример рекурсии. Просто в чисто функциональных языках иначе выходит криво- переменных-то там нет :D А компилятор потом мучается, обрабатывая хвостовую рекурсию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 10:55 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
по поводу факториала - тут не так все просто - есть понятие хвостовой рекурсии , очень хорошо пример написания факториала - и объяснение как его не надо писать и как надо - описан в языке Хаскель . что то похожее на это но с объяснением : http://www.willamette.edu/~fruehr/haskell/evolution.html Для java есть что то подобное : http://habrahabr.ru/post/113128/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 12:40 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 12:42 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
BlazkowiczС массой ограничений, но всё же: Код: java 1. 2. 3. 4. 5. 6. 7. 8. BlazkowiczИз интересного. Лямбда не может ссылаться сама на себя. Можно без боксинга, не определяя своих fi. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 16:11 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
avp.mkМожно без боксинга, не определяя своих fi. Только проблему переполнения инта и стека это не решает ни разу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 16:13 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
avp.mkТолько проблему переполнения инта и стека это не решает ни разу.+100500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 16:59 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Без рекурсии: Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:12 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
avp.mkavp.mkМожно без боксинга, не определяя своих fi. Только проблему переполнения инта и стека это не решает ни разу. По теме функционального подхода. (Не по Java8!). По поводу инта. Посмотри внимательно на самый первый исходник на F#. Код: c# 1. 2. 3. Видишь декларацию типа? Ее нет. По поводу стека - почитай про https://ru.wikipedia.org/wiki/Хвостовая_рекурсия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:39 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
mayton По поводу инта. Посмотри внимательно на самый первый исходник на F#. Код: c# 1. 2. 3. Видишь декларацию типа? Ее нет. Вывод типов в Java забанили 10 лет назад: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4459053 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:46 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Хех. Яже пишу выше. Не по Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:57 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvКак записать такую функцию на Java 8? Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 22:00 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Форма записи с переносом точки - просто ужасна ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 12:33 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
maytonФорма записи с переносом точки - просто ужасна ИМХО. Welcome to Java 8! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 12:33 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
maytonФорма записи с переносом точки - просто ужасна ИМХО. Вот тут чувак объясняет почему функциональная запись легче читается: https://miles.no/blog/why-should-we-care-about-functional-programming-part-2-transformations ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 12:43 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
В моём лице вы можете найти сторонника ФП. Я всего-лишь сказал что попытка писать в функциональном стиле на синтаксисе Java ужасает. Когда я делаю code review/refactoring того что колбасит моя группа - то обычно ровняю такие штуки в 1 строку. Когнитивный диссонанс от переноса точки вызывает у меня глухое раздражение. Ничего не могу с собой поделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 13:38 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
mayton, Методы с кучей параметров ты тоже в строку ровняешь? От этого никуда не дется. Так что привыкай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 13:43 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Это как карта ляжет. Если более чем 7 аргументов - то тревожный красный флажок на доработке. Слишком длинные имена - ну вобщем не флажок но тоже пожелание по краткости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 13:46 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
maytonВ моём лице вы можете найти сторонника ФП. Я всего-лишь сказал что попытка писать в функциональном стиле на синтаксисе Java ужасает. Когда я делаю code review/refactoring того что колбасит моя группа - то обычно ровняю такие штуки в 1 строку. Когнитивный диссонанс от переноса точки вызывает у меня глухое раздражение. Ничего не могу с собой поделать. Вопрос вкуса. Мне нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 15:09 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
мне тоже нравится, намного читабельнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 16:23 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Лямбды - читабельнее. Точки - втопку. Миру - мир. Всем - пива. Линуксоидам - рут с консолью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 16:32 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvДобрый день, уважаемые форумчане. Функция по вычислению факториала на языке F# выглядит так: Код: c# 1. 2. 3. Как записать такую функцию на Java 8? на джаве надо писать через цикл. остальное от лукавого. ведь выше у тебя записан итеративный процесс. зачем же извращаться, когда язык джава для итеративного процесса - предоставляет такое стредство как цикл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 20:44 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNостальное от лукавого. ведь выше у тебя записан итеративный процесс. зачем же извращаться, когда язык джава для итеративного процесса - предоставляет такое стредство как цикл? Ну например засунув эти "мегавычисления" в Stream API можно их на халяву распараллелить. Код останется простым, перфоманс вырастит (у меня вырос в 3 раза). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 21:11 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Красота кода, вам видимо не приходилось работать в проектах где в соглашениях о форматировании требуется обязательно ставить скобки фигурные везде и начинать каждую такую скобку с новой строки :) По функциональному коду - мне кажется что в жава он еще менее читабельный чем обычный не функциональный код.. Особенно эти пляски с опциями / туплами. Читать потом тарабарщину типа val().left().val() и тп. Жава нужна для старых легаси систем за поддержку которых платят большое бабло, это старый и скучный язык к которому пытаются вколоть ботекс и сделать фейслифт, но это слабо както получается, да и вобщем то не нужно это. Скала это вообще атас, тот-же старый и многословный жавовский код, но дополнительно усложненный еще сотня новых классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 17:53 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
private, у меня блондинка есть знакомая, тоже считает, что на работе должно быть весело. Не пробовали привязать, например, воздушный шарик, чтобы ява такой скучной не казалась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 18:30 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
В середине 20 века тоже был идейный спор т.н. "физиков" и "лириков". Мне кажется в современном It срезе общества тоже есть некое деление на "котелков" и "жестянщиков". "Фантазёров" и "практиков". Теоретиков и опытных. А разработка ПО и поставка deliveries существует в ортогональном направлении. И этому направлению как-бе по большему счёту пофиг какая стоит парадигма. Ведь в конечном счёте люди, human resources делают задачи а не сама парадигма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 19:16 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
privateПо функциональному коду - мне кажется что в жава он еще менее читабельный чем обычный не функциональный код.. Особенно эти пляски с опциями / туплами. Читать потом тарабарщину типа val().left().val() и тп. Жава нужна для старых легаси систем за поддержку которых платят большое бабло, это старый и скучный язык к которому пытаются вколоть ботекс и сделать фейслифт, но это слабо както получается, да и вобщем то не нужно это. Скала это вообще атас, тот-же старый и многословный жавовский код, но дополнительно усложненный еще сотня новых классов. А есть пример современного не унылого, не многословного языка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 19:49 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Вычисление факториала можно еще записать используя абстракцию над функцией факториала в виде итеративной функции. Итерируется произведение каждого числа на аккумулятор. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 16:49 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
А ещё факториал можно вычислить по аналитической формуле. Ваш кэп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 16:52 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
> А есть пример современного не унылого, не многословного языка? Руби, да даже ЖаваСкрипт и то мощнее и компактней. Кложур еще возможно, но я его не особо знаю потому утверждать не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 16:53 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovА ещё факториал можно вычислить по аналитической формуле. Ваш кэп. Я хотел узнать имеет ли такой способ записи право на жизнь? - прочитал в учебнике :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 17:28 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
aleapvВычисление факториала можно еще записать используя абстракцию над функцией факториала в виде итеративной функции. Итерируется произведение каждого числа на аккумулятор. Код: java 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. Вот это шлак.. Лямбды тут ну ни разу не нужны. Параметры f и i не нужны - всегда передаётся одно и тоже. Если это выбросить останется всего лишь: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 18:52 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Зашибись алгоритмы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 20:15 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЗашибись алгоритмы А нехрен больше двенадцати в такое передавать.. В оригинале был инт, я инт и оставил. Код с BigInt'ами уже был приведён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 21:55 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Убрать второй ненужный параметр и преобразовать хвостовую рекурсию в явный цикл - не бином ньютона. Раз уж наш класс назван Iter. Кинуть исключение по выходу аргумента за допустимые пределы - тоже. Заменить int на long - вообще не требует напряжения мысли. И в чём остаётся смысл покритиковать корявый код, приведя другой корявый код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 02:24 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЗаменить int на long Доо. Вот это идея! 20 первых чисел против 12 - это, конечно, ни разу не корявый код. Basil A. SidorovИ в чём остаётся смысл покритиковать корявый код, приведя другой корявый код? А вот чтобы показать что останется если убрать лямбды и 2 не нужных параметра (и алгоритм оставить тем же). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 09:29 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
private> А есть пример современного не унылого, не многословного языка? Руби, да даже ЖаваСкрипт и то мощнее и компактней. Кложур еще возможно, но я его не особо знаю потому утверждать не буду. ладно, руби - для поклонников сайт за 1 день, но JS то чем мощнее?:( Я всегда думал, что у JS и Java слегка разные сферы применения....;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:15 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
avp.mkА есть пример современного не унылого, не многословного языка? 93 год подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:39 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
privateда даже ЖаваСкрипт и то мощнее и компактней. Язык в котором наследование надо делать самому и через одно место не может быть "мощнее". Вся его мощь в отсутствии типизации и возможности ссылаться на функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 11:44 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Озверин, Если учесть что на горизонте ECMA 6, и node.js из всех шелей выползает. То что то у Java JS всё таки отожмёт в ближайшее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 12:27 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
GregTkЕсли учесть что на горизонте ECMA 6, и node.js из всех шелей выползает. То что то у Java JS всё таки отожмёт в ближайшее время.Не отожмёт. Яве уже лет 15 как пророчат - скоро яве трындец, скоро ява пропадёт и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 12:51 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Как ей может быть трындец? Вы лучше спросите когда байт-коду трындец. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 13:12 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньевavp.mkА есть пример современного не унылого, не многословного языка? 93 год подойдет? Вот и так всегда =) Какой-нибудь мегакритик пишет, что java - говно, c# - для быдла, scala - многословня. У него спрашиваешь: "А на чём писать хорошо?". А он тебе про паскаль или про джаваскрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 14:12 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
avp.mk, Не у меня, я просто встрял. Но Вы спрашивали - пример современного не унылого, не многословного языка Про на чём писать хорошо речи небыло. P.S. Брится удобнее бритвой, колбасу нарезать ножом, а универсальный инструмент - топор. IMHO выбор инструмента - вопрос привычки и обстоятельств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2014, 12:45 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
авторладно, руби - для поклонников сайт за 1 день, но JS то чем мощнее?:( Я всегда думал, что у JS и Java слегка разные сферы применения....;) Мы не про сферы применения и реализацию говорим а про язык. ЖаваСкрипт почти не уступает руби по мощности, особенно если бы можно было исправит его чуть. В нем от жавы одно только название да внешне похожий синтаксис, ну и классы еще по дурацкому сделаны чтобы создать видимость классического ООП вместо прототипов. Кто-то выше упомянул что там нет классов нормальных - там есть гораздо более мощная концепция прототипов , просто она очень по дурацки сделана как писал выше. И исправить ее нельзя из-за обратной срвместимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2014, 14:58 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Но это не самое худшее, на жава можно писать простой и обычный хороший код. Хуже всего в жава это сообщество которое начиталось паттерны программирования, статей индусских маркетологов про то как классно писать ХМЛ и расширяемую архитектуру и каждый второй добавляет себе приставку синьера или архитектора и создает классы с интерфейсами и фактор методами пачками там где можно написать какой нить простой и маленький кусок кода. Это особенно заметно когда начинаешь смотреть исходники открытых проектов - где на жаве через каждый второй думаешь - вто за сумасшедший все это писал так что вместо пары строчек нагорожено черти чо. Теже логи - любой проект запустить - он выдаст с десяток экранов всякой ерунды в лог. Или тестовые фреймворки - пишут в логи все что угодно кроме списка заваленых тестов и стектрейса - и сиди их настраивай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2014, 15:12 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
privateТеже логи - любой проект запустить - он выдаст с десяток экранов всякой ерунды в лог. Или тестовые фреймворки - пишут в логи все что угодно кроме списка заваленых тестов и стектрейса - и сиди их настраивайВсе логовые фреймворки в яве адское говнище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2014, 15:22 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
В продолжение темы. Есть сортировка Хоара: Код: java 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. Используя F# можно коротко записать почти этот алгоритм: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Как используя возможности java 8 упростить классический процедурный алгоритм (хотя бы по количество символов)? Я попробовал у меня получилось вот так, покритикуйте пожалуйста код и приведите возможно более лучшие варианты. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 11:14 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
По поводу логов - согласен. Их действительно читать бывает трудно. Мы подпиливали log4j конфигурации так чтобы хотя-бы package name не логгировалось. Простыня сократилась где-то на 50% из за схлопывания com.mycompany.mydept.myfuckenproject..... e.t.c. Формат даты везде где только можно "ужимали". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 13:26 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
По поводу паттерно в Java - ходит новый анекдот. Синьор не тот кто знает паттерны а тот кто может обосновать их ненужность и выкинуть нахер из проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 13:27 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
maytonМы подпиливали log4j конфигурацииЭ-э-э ... Простая мысль, что конфигурацию пишет тот, кто будет читать лог это нечто новое и оригинальное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 15:21 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Логи читают админы заказчика. Но им пофиг. Они будут грызть гранит и копать от забора до обеда. Но иногда нас тоже просят почитать логи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2014, 16:03 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Очень хорошая мысль, я думаю сайты тоже нужно делать чтобы по кмолчанию они выглядели как куча бессвязного текста, а те кто читает их пусть настраивают свой CSS как им надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2014, 15:43 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
privateОчень хорошая мысль, я думаю сайты тоже нужно делать чтобы по кмолчанию они выглядели как куча бессвязного текста, а те кто читает их пусть настраивают свой CSS как им надо."Хорошая мысль" это когда сайты приемлимо выглядят и без всякого CSS. P.S. Я, например, настраивал формат логов так, как это было удобно мне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2014, 16:51 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
А когда логи приемлемо выглядят без настройки это плохая мысль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 06:31 |
|
||
|
Функциональный подход Рекурсия
|
|||
|---|---|---|---|
|
#18+
Кстати про ограниченность жаваскрипте и отсутствие классов и наследование - я написал статью где показал как можно легко организовать классы, наследование, трейты, множественное наследование, перегрузку методов и тп с помощью функциональных миксинов http://jslang.info/blog/2012/functional-mixins ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2014, 15:51 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2126085]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
427ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
97ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 823ms |

| 0 / 0 |
