По поводу четвертой задачи, все решается через один оператор reduce, на груви выглядит так:
def whatDivider = { int n ->
if (n % 3 == 0) return 3
if (n % 7 == 0) return 7
return 0;
}
Observable.range(1, 20)
.reduce([:], {Map acc, int x ->
final n = whatDivider(x)
if (n == 0) return acc
acc[n] = (acc[n] ?: []) + x
acc
})
.subscribe({
it.each{ k, v -> println("Can be divided without remainder by ${k}: ${v}")}
});
Неужели в счете и отрисовке вы используете filter/map/reduce? Хотя мы уходим немного в сторону. Вот смотрите кусочек Linq#Where кода аналога filter под Mono:
static IEnumerable<TSource> CreateWhereIterator<TSource> (IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
foreach (TSource element in source)
if (predicate (element))
yield return element;
}
Там есть еще один такой же для массивов с циклом for. Filter версия должна быть очень схожа. Я не вижу разницы буть то написано даже на js или прямиком на c++. Метод прост как трусы за рубль двадцать. Вот что здесь оптимизировать, какие тут мега сложные проверки, которые нужно устранить?
Мне кажется это уже попахивает фанатизмом, конечно O(n) бывает разным, на разных поколениях машин. Давайте теперь не будем пользоваться умножением и делением, особенно внутри циклов, ведь это очень накладно. Если вы пишете компилятор C++ на JavaScript, то наверное вы что то делаете не так, а для повседневного использования, отрисовки списков или обработки асинхронных сообщений на стороне сервера вам должно за глаза хватить всех операций стоимостью O(n). Про корень зла не забыли?
Добро пожаловать в жестокий мир. Не совсем понятно почему это не сильно производительно, сложность тут линейная O(n). Но к счастью если вас заботит раздутие конечного автомата вы всегда можете использовать трансдьюсeры
Не совсем понятно в чем суть оптимизации если результат все равно будет O(n). Разве сейчас это уже не нативные методы? Во всяком случае в chrome Array.prototype.filter очень похож на нативный.
Как то я не удовлетворился нативным реактом, попробовал использовать сторонний компонент, все сломалось, попробовал кодить на виндах так он эмулятор андроида не видит. Короче как-то все выглядит сыровато и невдохновенно.
Зашел, почитал, поностальгировал (эх бесшабашная молодость, джарки в либочке и или флешочкой обменивались или все в CVS/SVN зато можно было кофе пойти попить пока новый проект чекапился), закрыл, вернулся к домашнему уютному gradle(работа) и sbt(дом).
RxJava ты могуч, ты гоняешь стаи туч… Скажите на ваш взгляд если нужно что то вроде Supplier только для поздней инициализации, но не хочется тянуть по тем же причинам Guava и если сделать это как:
Observable<String> lazyString = Observable.just("Just do it");
// Usage
lazyString.toBlocking().first();
Насколько нарушается кошерность и можно ли это сделать по другому, без ретро ламбда?
На мой взгляд C# до функциональности далеко еще из за нехватки read-only по умолчанию и везде, судя по тек тенденции команда поддержи языка идет по противоположному пути, ака readwrite по умолчанию.
Скажем для меня мелкий заказ — это примерно 1000 долларов за 3 дня программирования
Типовой — порядка 5000 долларов.
Россия, глубинка.
Вы во многом правы, сначала должно быть тяжеловато, поиск клиентов, взаимная любовь… Сам планирую пустится во фриланс плавание, вот только тэньге подкоплю. Скажите пожалуйста а с каким технологическим стеком(правильнее будет наверное тех кучей — tech stack) у вас выходит такой достойный доход?
Да про Мск 99х я как то даже и не догадывался, я думал все это кончилось с распадом СССР. Еще больше тогда удивляюсь как у нас в стране может быть столько скучающих по совку, ведь то что было при Лужке это только 5% от того что было при совке.
По идее этот оператор уже доступен в джава версии.
По поводу четвертой задачи, все решается через один оператор
reduce, на груви выглядит так:На джаве должно быть не на много длиннее.
Неужели в счете и отрисовке вы используете filter/map/reduce? Хотя мы уходим немного в сторону. Вот смотрите кусочек Linq#Where кода аналога filter под Mono:
Там есть еще один такой же для массивов с циклом
for. Filter версия должна быть очень схожа. Я не вижу разницы буть то написано даже на js или прямиком на c++. Метод прост как трусы за рубль двадцать. Вот что здесь оптимизировать, какие тут мега сложные проверки, которые нужно устранить?Мне кажется это уже попахивает фанатизмом, конечно O(n) бывает разным, на разных поколениях машин. Давайте теперь не будем пользоваться умножением и делением, особенно внутри циклов, ведь это очень накладно. Если вы пишете компилятор C++ на JavaScript, то наверное вы что то делаете не так, а для повседневного использования, отрисовки списков или обработки асинхронных сообщений на стороне сервера вам должно за глаза хватить всех операций стоимостью O(n). Про корень зла не забыли?
Добро пожаловать в жестокий мир. Не совсем понятно почему это не сильно производительно, сложность тут линейная O(n). Но к счастью если вас заботит раздутие конечного автомата вы всегда можете использовать трансдьюсeры
Не совсем понятно в чем суть оптимизации если результат все равно будет O(n). Разве сейчас это уже не нативные методы? Во всяком случае в chrome
Array.prototype.filterочень похож на нативный.По поводу третьей задачи, не совсем понятно зачем там лишние проверки и конверторы, все решается как показано ниже:
А разве в основе filter/map/reduce не лежат простые циклы?
Интересно, а сколько Microsoft заработало или заработает на этом проекте? Ведь Azure не бесплатно предоставили наверное.
Да но скорее всего основная причина переписки заключается в том что IntelliJ core написан на java 6
Если вы работаете с неизменяемыми структурами данных и особенно с коллекциями ХР архи удобна.
In Rider we trust
Как то я не удовлетворился нативным реактом, попробовал использовать сторонний компонент, все сломалось, попробовал кодить на виндах так он эмулятор андроида не видит. Короче как-то все выглядит сыровато и невдохновенно.
Так эквивалент cmd+shift+a из intellij там будет или нет? Студия уже х64 процесс?
Зашел, почитал, поностальгировал (эх бесшабашная молодость, джарки в либочке и или флешочкой обменивались или все в CVS/SVN зато можно было кофе пойти попить пока новый проект чекапился), закрыл, вернулся к домашнему уютному gradle(работа) и sbt(дом).
Да 15 лет и такое впечатление что он нисколько не изменился за эти 15 лет, да и просто не может меняться.
RxJava ты могуч, ты гоняешь стаи туч… Скажите на ваш взгляд если нужно что то вроде Supplier только для поздней инициализации, но не хочется тянуть по тем же причинам Guava и если сделать это как:
Насколько нарушается кошерность и можно ли это сделать по другому, без ретро ламбда?
На мой взгляд C# до функциональности далеко еще из за нехватки read-only по умолчанию и везде, судя по тек тенденции команда поддержи языка идет по противоположному пути, ака readwrite по умолчанию.
Вы во многом правы, сначала должно быть тяжеловато, поиск клиентов, взаимная любовь… Сам планирую пустится во фриланс плавание, вот только тэньге подкоплю. Скажите пожалуйста а с каким технологическим стеком(правильнее будет наверное тех кучей — tech stack) у вас выходит такой достойный доход?
Да про Мск 99х я как то даже и не догадывался, я думал все это кончилось с распадом СССР. Еще больше тогда удивляюсь как у нас в стране может быть столько скучающих по совку, ведь то что было при Лужке это только 5% от того что было при совке.