powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Функциональный подход Рекурсия
16 сообщений из 66, страница 3 из 3
Функциональный подход Рекурсия
    #38827951
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ей может быть трындец? Вы лучше спросите когда байт-коду трындец.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38828023
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньевavp.mkА есть пример современного не унылого, не многословного языка?
93 год подойдет?
Вот и так всегда =)

Какой-нибудь мегакритик пишет, что java - говно, c# - для быдла, scala - многословня.
У него спрашиваешь: "А на чём писать хорошо?". А он тебе про паскаль или про джаваскрипт.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38828839
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mk,

Не у меня, я просто встрял.

Но Вы спрашивали - пример современного не унылого, не многословного языка

Про на чём писать хорошо речи небыло.

P.S. Брится удобнее бритвой, колбасу нарезать ножом, а универсальный инструмент - топор.
IMHO выбор инструмента - вопрос привычки и обстоятельств.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38829057
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторладно, руби - для поклонников сайт за 1 день, но JS то чем мощнее?:( Я всегда думал, что у JS и Java слегка разные сферы применения....;)
Мы не про сферы применения и реализацию говорим а про язык.
ЖаваСкрипт почти не уступает руби по мощности, особенно если бы можно было исправит его чуть. В нем от жавы одно только название да внешне похожий синтаксис, ну и классы еще по дурацкому сделаны чтобы создать видимость классического ООП вместо прототипов.

Кто-то выше упомянул что там нет классов нормальных - там есть гораздо более мощная концепция прототипов , просто она очень по дурацки сделана как писал выше.
И исправить ее нельзя из-за обратной срвместимости.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38829074
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но это не самое худшее, на жава можно писать простой и обычный хороший код.

Хуже всего в жава это сообщество которое начиталось паттерны программирования, статей индусских маркетологов про то как классно писать ХМЛ и расширяемую архитектуру и каждый второй добавляет себе приставку синьера или архитектора и создает классы с интерфейсами и фактор методами пачками там где можно написать какой нить простой и маленький кусок кода.

Это особенно заметно когда начинаешь смотреть исходники открытых проектов - где на жаве через каждый второй думаешь - вто за сумасшедший все это писал так что вместо пары строчек нагорожено черти чо.

Теже логи - любой проект запустить - он выдаст с десяток экранов всякой ерунды в лог.

Или тестовые фреймворки - пишут в логи все что угодно кроме списка заваленых тестов и стектрейса - и сиди их настраивай
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38829087
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateТеже логи - любой проект запустить - он выдаст с десяток экранов всякой ерунды в лог.

Или тестовые фреймворки - пишут в логи все что угодно кроме списка заваленых тестов и стектрейса - и сиди их настраивайВсе логовые фреймворки в яве адское говнище.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38832230
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
package sort.hoar;

public class Proc {
	
	public void sort(int[] a, int l, int r) {
		int x = a[(l + r) / 2 - 1];
		int i = l, j = r;
		while (i <= j) {
			while (a[i - 1] < x) i++;
			while (a[j - 1] > x) j--;
			if (i <= j) {
				int w = a[i - 1]; a[i - 1] = a[j - 1]; a[j - 1] = w; i++; j--;
			}
		}
		if (l < j) sort(a, l, j);
		if (i < r) sort(a, i, r);
	}
	
	public static void main(String[] args) {
		System.out.println("a");
		int[] a = new int[] { 44, 55, 12, 42, 94, 6, 18, 67 };
		int k = 0;
		while (k < a.length) {
			System.out.print(" " + a[k]);
			k++;
		}
		new Proc().sort(a, 1, a.length);
		System.out.println("");
		k = 0;
		while (k < a.length) {
			System.out.print(" " + a[k]);
			k++;
		}
	}

}



Используя F# можно коротко записать почти этот алгоритм:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
let l = [ 44; 55; 12; 42; 94; 6; 18; 67 ]
l |> List.iter (fun x -> printf " %i" x);;  

let rec quicksort = function
| [] -> []
| h::t -> quicksort ([ for x in t do if x<=h then yield x]) 
        @ [h] @ quicksort ([ for x in t do if x>h then yield x]);;
  
printfn "";;
quicksort l |> List.iter (fun x -> printf " %i" x);;  



Как используя возможности 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.
package sort.hoar;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Func {

    public static void main(String[] args) {
    	
    	List<Integer> l = new ArrayList<Integer>(Arrays.asList( 44, 55, 12, 42, 94, 6, 18, 67 ));
       	l.forEach(x -> System.out.print(" " + x));
       	System.out.println();
       	sort(l).forEach(x -> System.out.print(" " + x));
    }
   
	static List<Integer> sort(List<Integer> l) {
		
		List<Integer> sl = new ArrayList<Integer>();
		
		if(!l.isEmpty()) {
			int h = l.get(0);

			sl = sort(l.stream().filter(x -> x < h).collect(Collectors.toList()));
	    	        sl.add(h); 
	    	        sl.addAll(sort(l.stream().filter(x -> x > h).collect(Collectors.toList())));
	
		}
    	return sl;
	}
	
}
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38832388
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу логов - согласен. Их действительно читать бывает трудно. Мы подпиливали
log4j конфигурации так чтобы хотя-бы package name не логгировалось. Простыня сократилась
где-то на 50% из за схлопывания com.mycompany.mydept.myfuckenproject..... e.t.c.

Формат даты везде где только можно "ужимали".
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38832389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу паттерно в Java - ходит новый анекдот. Синьор не тот кто знает паттерны а тот
кто может обосновать их ненужность и выкинуть нахер из проекта.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38832558
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМы подпиливали log4j конфигурацииЭ-э-э ... Простая мысль, что конфигурацию пишет тот, кто будет читать лог это нечто новое и оригинальное?
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38832650
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логи читают админы заказчика. Но им пофиг. Они будут грызть гранит и копать от забора
до обеда. Но иногда нас тоже просят почитать логи.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38833138
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень хорошая мысль, я думаю сайты тоже нужно делать чтобы по кмолчанию они выглядели как куча бессвязного текста, а те кто читает их пусть настраивают свой CSS как им надо.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38833160
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateОчень хорошая мысль, я думаю сайты тоже нужно делать чтобы по кмолчанию они выглядели как куча бессвязного текста, а те кто читает их пусть настраивают свой CSS как им надо."Хорошая мысль" это когда сайты приемлимо выглядят и без всякого CSS.

P.S. Я, например, настраивал формат логов так, как это было удобно мне.
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38833310
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А когда логи приемлемо выглядят без настройки это плохая мысль?
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38833489
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати про ограниченность жаваскрипте и отсутствие классов и наследование - я написал статью где показал как можно легко организовать классы, наследование, трейты, множественное наследование, перегрузку методов и тп с помощью функциональных миксинов http://jslang.info/blog/2012/functional-mixins
...
Рейтинг: 0 / 0
Функциональный подход Рекурсия
    #38833531
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateА когда логи приемлемо выглядят без настройки это плохая мысль?Великолепная. Одна проблема - у разработчика и сисадмина могут быть разные представления о приемлимости.
...
Рейтинг: 0 / 0
16 сообщений из 66, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Функциональный подход Рекурсия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]