|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2012, 09:38 | #1 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Functional Java?
Привет всем.
Писал раньше, по моему, но тут начал учить Scala. Все понравилось, супер, но для Android я проигрываю в скорости сборки проекта, это очень важно когда тестируешь UI. Как то не склеилось у меня со Scala под Android, может в будущем. Но после возвращения в Java, как то захотелось функциональной состовляющей, поэтому набросал парочку классов для помощи с этим делом. Примеры: Код:
Код:
Код:
Код:
Код:
Последний раз редактировалось BOBAH13; 22.01.2012 в 11:51. |
22.01.2012, 21:13 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Может быть Вам будет интересно: http://functionaljava.org/
И http://kotlin-demo.jetbrains.com Последний ещё не вышел, правда, но обещает быть интересной альтернативой Scala, тем более учитывая скорость компиляции. |
22.01.2012, 22:50 | #3 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
22.01.2012, 23:15 | #4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Мне кажется, что если интересует синтаксический сахар, то имеет смысл взглянуть на Eclipse Xtend, а если функциональщина со стороны библиотеки, то можно использовать functionaljava.
В чём преимущество Вашего подхода? |
23.01.2012, 00:08 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я не шарю в Яве, но ничего необычного не увидел Проясните вкратце?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
23.01.2012, 00:35 | #6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
В текущей версии Java (седьмой) до сих пор нет анонимных функций (планируются к включению в восьмой версии) и стандартная библиотека никак не располагает к программированию в функциональном стиле. BOBAH13 предлагает решение этих проблем в виде препроцессора кода на Java и небольшой библиотеки
|
23.01.2012, 09:06 | #7 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
Почему для меня это актуально? Я в основном пишу на Android, там до сих пор 6 версия Java. Кложеры собираются только к 8 дай бог, но я не думаю что Android переедет в ближайшем будущем даже на 7ю версию. На счет библиотек. Почему это плохо? Ну сразу простой ответ, дополнительный вес какого-то кода. В нашем же случае будут компилироваться и импортироваться совершенно маловесящие и только нужные (используемые) классы/интерфейсы. Конечно это не сильный аргумент. Сильная стороная это - синтаксис "реально" может быть красочным и + никакого рантайма (reflection) кода Java, напрямую вызываем методы анонимных классов. Ну а дальше пошло поехало, так же можно реализовывать любые примочки. Думаю это классная идея. Я уже разобрал и изучил: Scala, библиотеки для Java, и кучу приемов как дать Java функционального стиля. Лучшее из этого я думаю именно препроцессор, некий транслятор в Java код для компилятора, не для человека (не могу нормально форматировать, да и зачем). Если интересно буду держать в курсе дела, может потом сделаю еще и для андроид темплейты. Думаю это очень хорошая идея. |
|
27.01.2012, 09:21 | #8 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Просто не могу не похвастаться https://github.com/vladlichonos/FJava
|
27.01.2012, 11:28 | #9 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Здорово, поздравляю с первыми успехами)
Слегка смутило, что всё на регулярках. И кстати, у Вас опечатка: Translateable должно быть Translatable) Но от сего творения в таком виде я не вижу много смысла: нет возможности использовать с существующими библиотеками, и не предоставляется своя взамен. Было бы здорово, если бы была реализована хотя бы возможность передавать анонимную функцию в методы, принимающие интерфейс с единственным нереализованным членом, как Comparator, например. Код:
Код:
|
27.01.2012, 19:04 | #10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Спасибо. Ну на регулярках только токенайзер, а на счет функций, я думаю сделать как в Scala, типа если нужен на пример
Код:
Код:
Сейчас можно передавать функцию как аргумент, но только для ваших новых классов в которых функции принимают аргументы. Собственно, я еще собираюсь писать List, Array - ну как обычно так что думаю все будет нормально, врапперами обойдемся. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
чтение файла в массив строк java (Перенесено из Java SE) | Sasha9132 | Помощь студентам | 0 | 18.11.2010 22:57 |
Помогите справиться с java.lang.OutOfMemoryError: Java heap space | Levilaulada | Помощь студентам | 1 | 17.05.2009 10:59 |