0xd34df00d 24.01.2013 13:38 Azoth_primary

Ух ты, только что пришло в голову, что можно std::min применять и на итераторах, например, std::copy(start, std::min(start + count, scores.end()), ...);
Мелочь, а приятно.

Recommended by:

@pooq: моча съела говно

1. Myp 24.01.2013 13:39 Work

Тебя Игно покусал?

2. 0xd34df00dMyp /1 24.01.2013 13:39 Azoth_primary

Чо.

3. Myp0xd34df00d /2 24.01.2013 13:40 Work

Странные вещи говоришь просто :) Обычно более упоротое

4. 0xd34df00dMyp /3 24.01.2013 13:40 Azoth_primary

Ну не все же хуем орехи колоть.

5. ulidtko 24.01.2013 15:25

ебать костыли

6. 0xd34df00dulidtko /5 24.01.2013 15:25 Aedalus

Че.

7. ulidtko0xd34df00d /6 24.01.2013 15:31

мне лень опять писать про неудачный дизайн плюсовых итераторов.

для затравки, посмотри на вот этот протокол итерации:
> take 5 [1,2,3]
=> [1,2,3]

— и подумай, почему ему такой min попросту не нужен.

8. 0xd34df00dulidtko /7 24.01.2013 15:32 Aedalus

Потому что у take правильно написана база индукции. А написана она правильно потому, что у take есть доступ к контексту — можно заматчить последний элемент. В плюсах же нет доступа, и соснули.

9. ulidtko0xd34df00d /8 24.01.2013 15:35

ПРОТОКОЛ ИТЕРАЦИИ, сука, где ты в процессе итерации нашёл индукцию нахуй? абстрактнее смотри

10. 0xd34df00dulidtko /9 24.01.2013 15:36 Aedalus

Ну ты и лох, пидр. Я же уже написал.

11. ulidtko0xd34df00d /8 24.01.2013 15:36

и никакого контекста там нет, есть просто санк типа [a], который можно дёрнуть — и в ответ получить либо следующий элемент, либо конец списка.

12. 0xd34df00dulidtko /11 24.01.2013 15:36 Aedalus

Что я и написал.

А у итераторов нет понятия atEnd().

13. ulidtkoulidtko /11 24.01.2013 15:36

вот этот санк и является абстрактным итератором (а он и есть, по сути, значением списка в х-ле)

14. 0xd34df00dulidtko /13 24.01.2013 15:37 Aedalus

У меня рука не поворачивается их сравнивать вот так явно в открытую. Постыдился бы.
Потому что санк в хаскеле — умный по определению, а итератор — считай, указатель.

15. ulidtko0xd34df00d /14 24.01.2013 15:42

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

Алсоу. Скажем, плюсовый рейндж — пара итераторов, в простейшем случае пара указателей. Что мешает инкапсулировать их оба в ОДИН объект? Который сам будет знать, где он заканчивает итерацию (потому что знает конец рейнджа), и сам это будет решать внутри метода derg(). Итератор связанного списка проще становятся. Инкапсуляция поведения лучше становится (ни одна хуила снаружи не знает, что нужно КОНЕЦ ИТЕРАЦИИ делать сравнением значений итераторов). Всё становится лучше и проще.

16. vsv 24.01.2013 16:44

Сразу видно линуксоида. Спермоблядки пишут (std::min).

17. vsvulidtko /15 24.01.2013 16:46

В D александреска так и сделал. Но D никому не нужен, т.к. есть говнолегаси на крестиках.

18. ulidtkovsv /17 24.01.2013 17:22

и правильно сделал же!

19. 0xd34df00dvsv /16 24.01.2013 17:23 Azoth_primary

Че.

20. ulidtko0xd34df00d /19 24.01.2013 17:27

в какой-то из древних штудий std::min — макрос.

21. 0xd34df00dulidtko /20 24.01.2013 17:28 Azoth_primary

А, клево.

22. DZhonulidtko /20 25.01.2013 21:48

Даже в десятке включив определенные хэдеры из WinAPI получим макросы min и max. Лень гуглить, че за хэдеры, но я попадался уже.

Do you really want to delete ?