Ответить Создать тему

JVM Community21

Теги: JAVA, SCALA, KOTLIN
SeaEng
post Jan 14 2021, 13:31 
Отправлено #91


Активный

Сообщений: 3 310



jem, да просто на собеседованиях бывали люди, которые заявляли о том, что они разбираются в ФП и валятся на самых простых вопросах из теории категорий facepalm_ani.gif Если уж кто-то хочет действительно тру ФП подход поизучать, то я бы порекомендовал немного другую литературу blush2.gif

Пусть хотя бы "изучай Хассель во имя добра", он уже даст понять, что многие вещи решаются сильно проще в ФП, вот к примеру, куда более понятное решение алгоритма быстрой сортировки на haskell, чем тоже самое на java

Исходный код

quicksort1 :: (Ord a) => [a] -> [a]
quicksort1 [] = []
quicksort1 (x:xs) =
 let smallerSorted = quicksort1 [a | a <- xs, a <= x]
     biggerSorted = quicksort1 [a | a <- xs, a > x]
 in  smallerSorted ++ [x] ++ biggerSorted


Исходный код

   public static void quickSort(int[] arr, int start, int end){

       int partition = partition(arr, start, end);

       if(partition-1>start) {
           quickSort(arr, start, partition - 1);
       }
       if(partition+1<end) {
           quickSort(arr, partition + 1, end);
       }
   }

   public static int partition(int[] arr, int start, int end){
       int pivot = arr[end];

       for(int i=start; i<end; i++){
           if(arr[i]<pivot){
               int temp= arr[start];
               arr[start]=arr[i];
               arr[i]=temp;
               start++;
           }
       }

       int temp = arr[start];
       arr[start] = pivot;
       arr[end] = temp;

       return start;
   }


Как по мне, понять саму суть, а уже потом привязываться к особенностям языка, того же Java, или попробовать Scala + библиотека Cats, ну или Swift + библиотека Bow.

Я рад, когда люди проявляют интерес к ФП, но когда останавливаются даже не начав, считая лямбды и stream из java 8 достаточным, это немного печалит. Нужно больше ФПшников, господин :-)
Profile CardPM
  0/0  
jem
post Jan 14 2021, 14:58 
Отправлено #92


Активный

Сообщений: 4 908



Sergey Grigorev, ФП все-таки лучше обсуждать в старой теме. Там и разные варианты быстрых сортировок постили когда-то. Я же другую цель преследовал в посте к которому вы придрались. Если бы у меня была ссылка на другой бесплатный курс по джаве, то я бы обязательно дал ее, чтобы не будоражить умы.

Цитата(Sergey Grigorev @ Jan 14 2021, 13:31)
Нужно больше ФПшников
*

Это проблема курицы или яйца. Возможно, нужен спрос на функциональщиков.

--------------------
C, Clojure(Script), Common Lisp, ECMAScript, Haskell, Java, Lua, Perl, PL/SQL, Python, Scala, SQL, Transact-SQL.
Profile CardPM
  0/0  
SeaEng
post Jan 14 2021, 15:18 
Отправлено #93


Активный

Сообщений: 3 310



Цитата(jem @ Jan 14 2021, 14:58)
Это проблема курицы или яйца. Возможно, нужен спрос на функциональщиков.
*

Ну в Чувашии его может и нет, но на мировых рынках очень большой спрос. Это же BigData, Kafka / Spark в связке с Scala / Java. Во всей этой бигдате как раз все это и применяется, те же полугруппы и моноиды для распределенных вычислений DANCE.gif А всяческие монады и MTL для того, чтобы писать один код, который переиспользуется и в рантайме и в тестах.
Кроме того, учитывая насколько огромны современные приложения, делать рефакторинг кода, написанного в ФП стиле значительно проще, потому что он не зависит от каких-то порядков вызовов методов и глобальных переменных.
Это и есть причина, почему я не планирую вернуться в Java, совсем. Лучше попробую Swift :-)
Profile CardPM
  0/0  
kokc
post Aug 4 2021, 19:08 
Отправлено #94


Новичок

Сообщений: 8



Добрый день, в нашем городе есть организации ведущие разработку на java? И имеется ли потребность в программистах java?) На HH как-то слишком грустно.
Profile CardPM
  0/0  
SeaEng
post Aug 5 2021, 02:01 
Отправлено #95


Активный

Сообщений: 3 310



Цитата(kokc @ Aug 4 2021, 08:08)
Добрый день, в нашем городе есть организации ведущие разработку на java? И имеется ли потребность в программистах java?) На HH как-то слишком грустно.
*

Я знал несколько мест, где больше ориентировались на C#, а по Java знаю только удаленщиков в данный момент
Profile CardPM
  0/0  

ОтветитьTopic Options
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
Быстрый ответ
Кнопки кодов
 Расширенный режим
 Нормальный режим
    Закрыть все тэги


Открытых тэгов: 
Введите сообщение
Смайлики
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
smilie  smilie  smilie  smilie  smilie 
         
Показать все

Опции сообщения