Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Немного стилистических изменений #7

Closed
wants to merge 4 commits into from

Conversation

AndrewKraevskii
Copy link
Contributor

Идея превратить Computer в итератор слишком забавная чтобы её не реализовать. Так можно использовать find вместо while cond {}.

AndrewKraevskii and others added 2 commits April 28, 2023 06:24
Merge pull request JustAGod1#6 from AndrewKraevskii/master
@JustAGod1
Copy link
Owner

what de actual fuck

мне необходимо время подумать над такими приколами

@AndrewKraevskii
Copy link
Contributor Author

what de actual fuck

мне необходимо время подумать над такими приколами

Идея в том что find будет просто получать элементы из итератора до тех пор пока не встретит нужный и сразу завершится. И каждый раз при получении нового элемента вычисляется следующий шаг эвм. take(100) ограничит выполнение до 100. Тоесть итератор полюбому завершится после 100 итераций или когда сработает предикат в find. Что в данном случае эквивалентно оригинальному коду.
Чёт функциональщина на меня плохо влияет

@JustAGod1
Copy link
Owner

what de actual fuck
мне необходимо время подумать над такими приколами

Идея в том что find будет просто получать элементы из итератора до тех пор пока не встретит нужный и сразу завершится. И каждый раз при получении нового элемента вычисляется следующий шаг эвм. take(100) ограничит выполнение до 100. Тоесть итератор полюбому завершится после 100 итераций или когда сработает предикат в find. Что в данном случае эквивалентно оригинальному коду. Чёт функциональщина на меня плохо влияет

Это то очев. Я просто не уверен на сколько это правильно говорить, что компьютер это итератор. Это как будто бы семантическо-стилистически не правильно. А может и правильно, надо поговорить со своим внутренним типизатором. Пик рилейтед.

image

@AndrewKraevskii
Copy link
Contributor Author

AndrewKraevskii commented Apr 28, 2023

Я просто не уверен на сколько это правильно говорить, что компьютер это итератор.

Мне кажется у компьютера должен быть способ получить итератор, но сам компьютер итератором быть не должен. Но если так подумать это не совсем компьютер а скорее состояние компьютера и итерироваться по состояниям уже звучит норм

@JustAGod1
Copy link
Owner

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

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

Но с другой стороны эта абстракция ничему не мешает и добавляет приколов. Да и раст как будто бы тот язык, который любит кучу трейтов на всем.

В общем отревьювлю завтра и наверно смержу. thx for contributing.

@AndrewKraevskii
Copy link
Contributor Author

Да я ещё подумал это и правда не очень идея т.к. в привычном понимании мы не можем менять итератор между итерациями (в моём понимании). А мы ровно это и делаем

@JustAGod1 JustAGod1 closed this Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants