LINUX.ORG.RU

Круто! Хотя решетки уродливы... почему не как в Groovy?

vertexua ★★★★★
()
Ответ на: комментарий от yoghurt

мда, это совсем п-пц. Зачем такое уродство? Ни в одном языке нет такого обозначения замыканий...

anonymous
()

>#(int x)( x + 1 ).(3);

Это они так лямбду замучали?

anonymous
()

ужасно. над Java программерами и так смеются.

tommy ★★★★★
()

Какой уебищный синтаксис.

P.S. предлагаю банить тех, кто не оформляет ссылки надлежащим образом.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>P.S. предлагаю банить тех, кто не оформляет ссылки надлежащим образом.

Плюсую, пользователи «опанек» достают.

vga ★★
()

А чем синтаксис не нравится? По-моему нормально. Автовывод типов параметров был бы конечно лучше, но это не хаскель. Меня удивляет применение замыкания через .() Чем то похоже на перегрузку оператора () в С++.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Впрочем я бы тело функции в { } заключал бы, как то логичнее смотрелось.

Legioner ★★★★★
()

Я в своём развитии остановился на Java2 1.4.

Зачем они исковеркали синтаксис такого хорошего языка ещё в Java 5.0 и последующих вымученных версиях, я понимаю — в угоду улучшенной/продлённой поддержки deprecated-фич, наследства AWT и коллекций.

iZEN ★★★★★
()
Ответ на: комментарий от yoghurt

Такое же нечитаемое. Вот это красивее:

(\x -> x + 1) 2
или
((λ (x) (+ x 1)) 2)

Legioner ★★★★★
()
Ответ на: комментарий от tailgunner

> Какой уебищный синтаксис.

Какая конструкция, такой и синтаксис. Замыкания сами по себе уебищны.

Оракел делает все, чтобы java7 постигла участь perl6. Все так и будут до конца времен на java6 сидеть.

anonymous
()
Ответ на: комментарий от iZEN

Кстати да, убивать надо было уже за джынерики.

anonymous
()
Ответ на: комментарий от tailgunner

Одни скобки для параметров, одни скобки для тела функции. Последние скобки в коде не будут (какой смысл создавать замыкание и тут же его вызывать?). Т.е. будет что то вроде collection.map(#(int x) (x + 1));

Вообще не знаю как относиться. С одной стороны в скале всё это сделано давно, работает, сделано целостно и удобно. С другой стороны от джавы никуда не деться, и улучшения в языке помогают.

Legioner ★★★★★
()
Ответ на: комментарий от tailgunner

Ню ню. Расскажи честному народу, на кой замыкания в языке, где есть анонимные классы?

Если в недоязыках вроде javascript еще и есть толк от этой бредятины, то в Java существуют гораздо более элегантные подходы, которые не позволят генерить write only код.

anonymous
()
Ответ на: комментарий от anonymous

чтоб не городить интерфейсы на каждый чих?

Pi ★★★★★
()
Ответ на: комментарий от LamerOk

В плюсах вместо # написали [], вместо круглых скобок написали фигурные, вот и всё отличие. Это действительно настолько элегантнее?

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

И вообще я по ссылке не ходил. Щас сходил, все вопросы снимаются. #(int x){ return x + 1; } нормально выглядит. Походу ещё и return type выводят, совсем хорошо.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

И то, и то выглядит синтаксическим уродством. Но в плюсах хотя бы можно догадаться, что этот бессмысленный поток символов типа функция.

LamerOk ★★★★★
()
Ответ на: комментарий от Legioner

> Ещё раз.

Еще раз. Я по ссылке тоже не ходил.

[](int x) { return x + 1; }

выглядит читабельнее, чем

#(int x)( x + 1 )

фигурные скобки хотя бы можно развернуть в несколько строк.

LamerOk ★★★★★
()
Ответ на: комментарий от anonymous

на кой замыкания в языке, где есть анонимные классы?

чтобы там, где по логике вещей нужна функция, была именно функция, а не анонимный класс

jtootf ★★★★★
()

Думаю поменяют после первых отзывов разработчиков.

Можно были или слизать с Groovy, или с Scala или использовать слово lambda

vertexua ★★★★★
()
Ответ на: комментарий от anonymous

>>> Замыкания сами по себе уебищны.

Слишком толсто.

Ню ню. Расскажи честному народу, на кой замыкания в языке, где есть анонимные классы?

Ню ню, расскажи честному народу, чем анонимный класс отличается от замыкания? Кроме более громоздкого синтаксиса и необходимости иметь базовый класс или интерфейс.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Scala мой любимый ЯП. Правда решил писать на нем одну программу, но нет GUI билдера для Swing на Scala. По крайней мере я не нашел ничего хорошего. В итоге клеил Java и Scala, что только теоретически приятно. На практике типы разходятся и нужно конвертировать. Списки у них разные и т.д.

vertexua ★★★★★
()
Ответ на: комментарий от jtootf

> чтобы там, где по логике вещей нужна функция, была именно функция, а не анонимный класс

В этом язке, где по логике вещей нужно что-то, должен быть класс. Дизай такой у языка.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Это просто синтаксический сахар для часто использующегося куска кода. Компилятор скорее всего это будет превращать в inner класс.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Надо чтоб как в Scala были. Тогда посмотрим = )

anonymous
()
Ответ на: комментарий от vertexua

Во первых для единообразности, во вторых для конкурентоспособности (посмотрим что будет Scala vs Java 7)

anonymous
()
Ответ на: комментарий от anonymous

Просто мне кажется Scala не пилят. Где редактор GUI? Плагины ставятся с малой вероятностью что на нетбинс, что на еклипс. Ну и конечно оптимизация хвостовой рекурсии отсутствует в VM.

vertexua ★★★★★
()
Ответ на: комментарий от jtootf

> чтобы там, где по логике вещей нужна функция, была именно функция, а не анонимный класс

А что такое «функция», как не метод класса?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.