![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: нет Всего: 46 |
||||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Я бы назвал тему "Почему в яве так не любят foreach и все, что младше 10 лет".
И все-таки жалко, что у вас холиворов нету. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
А это что? Но вообще джавовский foreach весьма убог, в CL loop (и iter из пакета iterate) намного круче. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
О, действительно.
А что такое CL? Убог/не убог, но уже лучше, чем ничего, меньше можно напортить (ошибки при копипасте вложенных циклов, когда забывают исправить переменную), не говоря о том, что foreach не требует индексации. Ну и выглядит лучше, чем ручной вызов итератора. |
|||
|
||||
k0rvin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Common Lisp
вот только такую фишку с его помощью не сделать:
Впрочем в CL loop этого тоже не сделать, но в C++, думаю, можно что-такое сотворить. Добавлено через 9 минут и 18 секунд И вот такую штуку не сделаешь:
а в CL loop сделаешь =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: нет Всего: 28 |
зато в java можно извратиться ![]()
Это сообщение отредактировал(а) Pawl - 15.6.2012, 22:51 -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Фу. Вы небось теми же руками потом на форуме пишете? Это map чтоли? Библиотекой наверняка можно, а встроенных средств ФП в яве нет. Не, фп в питоне очень приятное и не слишком тошнотное. Линку не юзал, но тоже с виду неплох + параллелизация искаропки. |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Это мне любитель джавы говорит? ![]()
Нет, не map.
А при чем тут ФП? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
Karadul |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Ну любитель - не любитель, но пользуюсь. А какое лисп имеет отношение к яве в частности и к промышленной разработке вообще? Он за пределами университетов кому-то нужен? А что? Уж очень похоже
Там не вложенные for. |
||||||
|
|||||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Common Lisp - вполне себе прямое. http://www.lispworks.com/success-stories/index.html http://www.franz.com/success/ Но ты отвлекаешься. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Зачем ты пропустил
? =) Но это конечно изврат. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
Karadul |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
От чего? Мы о ФП говорили? Так а что из себя представляют примеры, если не map+reduce? Добавлено @ 15:05
Это типа как много на нем написано? А на яве этот список тебе браузер завесит ![]()
Вот уж действительно изврат - из-за одного значения foreach вызывать и потом останавливать, так еще и с O(n**2). На govnokod.ru надо запостить. Это сообщение отредактировал(а) Karadul - 18.6.2012, 15:11 |
||||||
|
|||||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
От циклов foreach.
Простые циклы.
Это типа его используют в "энтерпрайзе", а мерятся количеством как-то не солидно. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
Karadul |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
И чего в них не хватает?
Параллельной итерации по двум последовательностям? В питоне это решается так
Т.е. берется функция zip, которая возвращает выполнят на каждой последовательности next() и возвращает кортеж со значениями, потом этот кортеж распаковывается в x,y. Скорость такой операции жавоёидов может не устроить. А как часто такое бывает надо? Ну в принципе можно бы было и сделать, но с консервативностью явы вряд ли, мож в дотнете бы появилось.
Это уже какая-то полунизкоуровневая хрень. Для таких целей лучше подходит map или уже сишный for цикл. Итерация через foreach с возможностью изменения элемента не всегда возможно, т.к. итерация может идти через последовательности, которые изменить нельзя в принципе (например, поток байтов из сокета или файла, открытого для чтения). Хотя для массивов, возможно бы, и пригодилась. В сисярпе есть ref, может там что-то работает. А вообще работа с итераторами хорошо получается через ФП. Может, в сисярпе linq решает часть этих проблем.
А яву где? А количеством людей, пишущих на нем, солиднее? Это сообщение отредактировал(а) Karadul - 18.6.2012, 17:39 |
||||||||
|
|||||||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Модератор: Сообщение скрыто. |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |