
da horsie
14.02.2017
08:32:52
Ну вернее ооп это не java

Ivan
14.02.2017
08:34:22
* не только джава

Red
14.02.2017
08:34:33
Java - язык

Google

Evgeniy
14.02.2017
08:35:48
java язык, а я томат

guga
14.02.2017
08:35:54
ага ооп язык, где есть примитивы, статики, лямбды.

Alexander
14.02.2017
08:36:48
вики врет? Java — строго типизированный объектно-ориентированный язык программирования.

Sergey
14.02.2017
08:37:03
мультипарадигменный)

guga
14.02.2017
08:37:47
конечно вики не врёт, что ты
я бы тебе показал вики нашего проекта
вот ему точно не стоит верить

Alexander
14.02.2017
08:39:10

Paul
14.02.2017
08:39:48
Лол, вы сначала с дефиницией ООП определитесь

Red
14.02.2017
08:44:41
Ну а в чем проблема? Обёртки для примитивов есть, те же статики используются для реализаций паттернов ООП, они все равно являются объектами, ну лямбды - ООП с блэкджеком и .. лямбдами

Evgeniy
14.02.2017
08:45:32
в интерфейсах реализацию можно делать))
даже практически трейты))
самое забавное читая философия java там в первых главах рассказывается почему в java не нужно множественное наследование как в c++

Google

Evgeniy
14.02.2017
08:47:25
а потом бац и оказывается надо чтобы в se в паре мест код по красивей был без лишнего дублирования

Red
14.02.2017
08:47:39
припоминаю - в том же абзаце вроде пишется. почему в Java нет указателей

Paul
14.02.2017
08:48:07

Red
14.02.2017
08:48:32

Evgeniy
14.02.2017
08:48:33
поэтому я написал "практически"

Paul
14.02.2017
08:48:47
Ок, наезд был лишним )

Evgeniy
14.02.2017
08:53:05
а можно поподробнее?
например вот http://softwareengineering.stackexchange.com/questions/233053/why-were-default-and-static-methods-added-to-interfaces-in-java-8-when-we-alread

Red
14.02.2017
08:53:27
ty

Evgeniy
14.02.2017
08:53:32
можно еще погуглить

Red
14.02.2017
08:54:01
я через пару часов почитаю, благодарю

Evgeniy
14.02.2017
08:54:36
там идея в том что было 2 метода сортировки один у листа другой у коллекции которые были очень похожи
но их приходилось копипастить потому что для разных реализаций нельзя было наследоваться от двух мест
вообщем там написано)

Aleh
14.02.2017
09:37:15
Тут новая статейка https://martinfowler.com/bliki/FunctionAsObject.html
Ничего нового, но ближе к ооп

Paul
14.02.2017
09:53:02

Aleh
14.02.2017
09:53:36

Paul
14.02.2017
09:53:45
ООП без типажей не нужно

Aleh
14.02.2017
09:54:10
Так, а типажи это что?

Paul
14.02.2017
09:54:19
Сейчас даже у функционалка смотрится получше, чем потуги оппшников

Google

Paul
14.02.2017
09:54:22

Aleh
14.02.2017
09:55:32
лол
Отлично объяснил, спасибо)
Вижу что-то в расте, похоже на интерфейсы
Или тайпклассы в хаскеле, это оно?

Paul
14.02.2017
09:57:33
Да, тайпклассы в хаскеле или трейты в расте (или имплисит в скале)

Aleh
14.02.2017
09:58:01

Paul
14.02.2017
09:58:35
это просто перевод "тайпкласса"
Трейты не очень слово, ибо путаница с трейтами из рубей

Aleh
14.02.2017
09:59:45
Окей, никогда не думал о переводе тайпклассов
Так я не понял связи ооп и тайпклассов

Paul
14.02.2017
10:01:21
Т.е. связь ооп с интерфейсами ты понимаешь, а с типажами нет?

Aleh
14.02.2017
10:02:52
Ну даже просто интерфейсы в жаве

Aleh
14.02.2017
10:02:52

Paul
14.02.2017
10:03:48

Aleh
14.02.2017
10:04:07

Paul
14.02.2017
10:05:11
Ладно, разговор ни о чём, "ООП" сегодня это пердёшь в воздух, так что сравнивать нужно конкретные проявления (протимную модель, модель кея, классовую модель).

Google

Aleh
14.02.2017
10:05:20
Даже свертки если захотеть
Ровно как и фп
Хотя там получше, потому что об этом просто меньше говорят

Paul
14.02.2017
10:06:38
Paul Loyd, [10.02.17 23:10]
Чуваки, простейшая для типажей абсолютно задача: спроектировать итератор Map<I, F> такой, чтобы он был Copyable только тогда, когда итератор I: Copyable. Аналогично с остальными производными итераторами (Filter, Flat и прочее)
Paul Loyd, [10.02.17 23:11]
Кроме Copyable могут быть и другие (аля ExactSize, если можно узнать кол-во оставшихся).
Хреново процетировалось, ну да ладно

Admin
ERROR: S client not available

Aleh
14.02.2017
10:07:08

Paul
14.02.2017
10:07:16
Что элементы можно копировать

Aleh
14.02.2017
10:07:34
Так это свойство элементов?

Paul
14.02.2017
10:07:45
+ нужно чтобы можно было пробрасывать свои атрибуты. Скажем, чтобы uniq() работал как обычный dedup нужно гарантировать свойство упорядоченности

Aleh
14.02.2017
10:10:35
Да
Так как это влияет на список?

Paul
14.02.2017
10:10:44

Aleh
14.02.2017
10:11:46
Элемент Copyable, это его свойство, почему оно как-то должно отражаться на контейнере?

Paul
14.02.2017
10:12:32
Скажем, у тебя есть итератор по ссылкам на какой-то тип. Можно ли получить итератор по значениям зависит лишь от того, копируемый ли элемент или нет.

Aleh
14.02.2017
10:12:41
Если ты хочешь мапу только из Copyable, то так и должен ее описать, Map <I: Copyable>

Paul
14.02.2017
10:14:00

Aleh
14.02.2017
10:15:24
class SpecificList <I: Copyable> implements Map <I>

Paul
14.02.2017
10:16:02
Какая разницу списку, клонируемые его элементы или нет?

Google

Aleh
14.02.2017
10:16:34
Так если разницы нет, то используй просто Map <I>
Oo

Paul
14.02.2017
10:16:42
Ты, видимо, не понял задачу

Aleh
14.02.2017
10:16:55
Я может очень сонный, но совсем не улавливаю)

Paul
14.02.2017
10:18:06
Ещё раз: есть итератор Iterator<T>, не важно откуда он получен. Очевидно, что на итераторе есть всякие filter(), map() и т.д., которые порождают другие итераторы, скажем map() порождает итератор Map<Iterator<T>, fn>
Задача: у этого итератора должен быть метод clone() только тогда, когда он есть у типа T

Red
14.02.2017
10:19:38
/stat@combot

Combot
14.02.2017
10:19:38
combot.org/chat/-1001071233926

Aleh
14.02.2017
10:19:56
А что сделает clone у итератора?

Paul
14.02.2017
10:20:25
Будет вызывать у всех элементов clone, чтобы получить из Iterator<&T> Iterator<T>
Если не нравится свойство клонируемости можешь другое взять, скажем частичной/полной сравнимости или эквивалентности

Aleh
14.02.2017
10:21:19
Ага, ну тебе нужен CloneableIterator <T: Cloneable> implements Iterator <T>
В котором описан clone

Paul
14.02.2017
10:21:30
Отлично, о чём я и говорю
Это одно свойство
Теперь добавим ещё сравнимости и эквивалентности
И получаем CloneableEqOrdIterator
И дублируем так на все Map, Filter, Skip и т.д. итераторы