From: Peter B. S. <vs...@ho...> - 2003-10-23 07:41:10
|
Max Belugin wrote: > Нельзя написать функцию которая работает с любым объектом, у которого > есть метод add А кому нужна такая функция? Функция пишется в расчете на определенные, а не на любые, типы объектов и перегружается сколько надо раз. Для любых есть java.lang.reflect.*. Только типизация здесь ни при чем, это называется late binding. > > обязательном порядке" - это даже хорошо, т.к., забыв определить > > нужный метод, в Java я получу ошибку на этапе компиляции, а в Питоне > > - на этапе выполнения. > именно этот я и вкладывал когда писал "надежность меньше, реюз > больше" Такой реюз делается через полиморфизм, при этом надежность остается. > > Во-первых, никто и не обещал, что она останется. Во-вторых, не вижу > > в этом проблемы. Реализация функции - моя. Списки, переданные в map > > - тоже мои. Наверное, я знаю, что мне ожидать на выходе? > О... если так рассуждать, статическая типизация вообще не нужна. См. > предыдущее предложение. Не расскажете, как Вы пришли к такому заключению? Я не улавливаю никакой связи, предыдущее предложение не помогает. > >>Кстати, тебе придтся для каждого случая вызова функции создавать > >>wrapper, который читебальности не прибавит. > я говорил про фрапперы функций. Как напримар воспользовавшись твоим > map зключить все строки списка в кавычки. Function f = new Function() { public Object call(FunctionArguments args) { return "\"" + args.get(0) + "\""; } }; List ql1 = BuiltIn.map(f, l1); List ql2 = BuiltIn.map(f, l2); Где здесь вообще враппер, не говоря уже про каждый случай вызова? > >>не надо. и тебе как - для скриптинга это удобно? (реализация 9 раз > >>одного и того же) > > Удобно, что здесь неудобного? И какое мне, как пользователю, дело до > > реализации? > то есть ты не хочешь обощать части своих скриптов и т.д. Наверное, я напрочь тупой, но нельзя ли расшифровать, что значит "обобщать части своих скриптов и т.д."? > >>Ничего - городить на каждый чих врапперы конечно можно, но > >>читаемости не прибавит. > > Это субъективно. Два-три враппера _я_ выдерживаю. > То есть, по твоему, врапперы прибавляют читаемость? Нет. Они, до определенного количества, ее не убавляют. > >>String - не коллекция. Массив - не коллекция. > > Вы же только что согласились, что врапперы можно написать. > а так же писать врапперы на каждый новый тип массива. > напишите Wrapper для String [] теперь для Applet [] Для того, чтобы добавить элементы массива в список, не надо знать их реальный тип, поэтому я напишу один для Object[]. > >>>>- функции - это объекты > >>врапперов не надо писать, с ними можно делать все, что с объектами. > > А что еще делают с функцией, кроме как вызывают? > сравнивают, передают в качестве параметра, хранят в переменных и > списках. Чем для этого не подходит интерфейс Function? > > Не понял. Писать за Вас это будет любая IDE. А зачем это читать? > как любая IDE будет за меня _читать_ этот не относящийся к делу код. А кто за меня будет читать и писать все эти self'ы в методах класса? Это к вопросу о лаконичности. А конструктор/методы предка вызывать не через super, а по имени? Это к вопросу о реюзе. Предлагаю прекратить членами меряться. > эти примеры были только иллюстрацией. Иллюстрацией чего? > Еще, питон обладает большей способностью консервировать щелчки с тем > чтобы дальнейшем щелкать меньше. Это как? > > решили. Я просто хотел узнать, чем Питон лучше Java в плане > > кроссплатформенности. > http://python.org/download/download_other.html Количество - это хорошо. А что с качеством? > ;))) вот в конце вы мне предложили писать на питоне, толькопод JVM Я такого не предлагал. Я предложил написать свои хелперы или взять готовые, если хочется лаконичности. А уж на что эти хелперы будут похожи - дело вкуса писателя. -- 0xdeadbeef |