{"id":357802,"date":"2024-05-20T23:58:24","date_gmt":"2024-05-20T23:58:24","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=357802"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=357802","title":{"rendered":"<span>\u0418\u0437\u043c\u0435\u0440\u044f\u044f sequences<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/247\/e1e\/060\/247e1e06089f32519bd7281957397381.png\" width=\"2560\" height=\"760\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/247\/e1e\/060\/247e1e06089f32519bd7281957397381.png\"\/><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u042f \u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 SberDevices \u0438 \u043f\u0440\u043e\u0432\u043e\u0436\u0443 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043f\u043e Android (<em>\u0431\u043e\u043b\u0435\u0435 100 \u0432 \u0433\u043e\u0434<\/em>). \u041f\u043e \u043e\u043f\u044b\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u044f \u0432\u0438\u0436\u0443, \u0447\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0431\u043e\u044f\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sequences \u0432 \u0440\u0430\u0431\u043e\u0442\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u0410 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 sequences \u0434\u0430\u044e\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0430 \u0432 \u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448.<\/p>\n<p>\u0412 \u0441\u0435\u0442\u0438 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u044d\u0442\u043e\u043c (<em>\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b<\/em>). \u0412\u0435\u0437\u0434\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0438\u0435 \u0444\u0440\u0430\u0437\u044b, \u0431\u0435\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u043e\u0432 \u0438 \u0446\u0438\u0444\u0440. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u043e\u0440\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e detect, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0433\u043b\u0430\u0441\u0438\u0442<\/p>\n<blockquote>\n<p><strong><em>CouldBeSequence:<\/em><\/strong><em> <\/em>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 sequences, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 3 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u044e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0434 kotlin, \u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 sequences. \u041f\u043e\u043d\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 sequences \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448. \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u043a \u044d\u0442\u043e\u043c\u0443 \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0438 \u043a\u0435\u0439\u0441\u044b.<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043b\u044e\u0431\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<h4>\u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0432\u0430\u0436\u043d\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0443 \u0432\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>sort<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>flatten<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>plus<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 flatten<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u043d\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\"><strong>distinct<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 kotlin 2.0<\/p>\n<p align=\"left\"><em>\u041e\u0444\u0444\u0442\u043e\u043f\u0438\u043a, \u043f\u0440\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 distinct \u0432 kotlin 2.0 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f<\/em><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\"><strong>chunked<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0430\u0435\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0412\u044b\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435\u00a0 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0430\u0434\u0443\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0443\u0436\u0435 \u0441 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<h4>\u0412\u044b\u0432\u043e\u0434\u044b<\/h4>\n<blockquote>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u043e detect <strong><em>CouldBeSequence<\/em><\/strong> \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <strong>sort, flatten, plus<\/strong><\/p>\n<\/blockquote>\n<p>\u042f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0432\u043e\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 sequences \u043d\u0430 \u041c\u043e\u0431\u0438\u0443\u0441 2023 \u0438 \u0442\u0435, \u043a\u043e\u043c\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e, \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u043c\u043e\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430  <a href=\"https:\/\/youtu.be\/bg3ICZVRDOs?si=ZSqq2_nRoMZjT25F\" rel=\"noopener noreferrer nofollow\"><u>Mobius spring 2023, \u0434\u043e\u043a\u043b\u0430\u0434 &#171;\u0418\u0437\u043c\u0435\u0440\u044f\u044f sequences&#187;<\/u><\/a><\/p>\n<p>\u0422\u0435 \u0436\u0435, \u043a\u0442\u043e \u043b\u044e\u0431\u0438\u0442 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 sequences \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0438\u0440 sequences. \u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439.<\/p>\n<h3>\u0422\u0435\u043e\u0440\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f sequences, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/h4>\n<ul>\n<li>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b04\/0b0\/9c8\/b040b09c8bf511cbe4886f176fa519d6.png\" alt=\"\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438\" title=\"\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438\" width=\"1600\" height=\"255\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b04\/0b0\/9c8\/b040b09c8bf511cbe4886f176fa519d6.png\"\/><\/p>\n<div><figcaption>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 &#8212; \u044d\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435, \u0447\u0442\u043e \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 sequences<\/h4>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434 \u0446\u0438\u043a\u043b\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 sequences \u043c\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u043c \u0432\u0441\u0435\u0445 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e sequences \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0430\u043a \u043b\u0438 \u044d\u0442\u043e \u0438 \u043d\u0435\u0442 \u043b\u0438 \u0442\u0443\u0442 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h4>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 sequences<\/h4>\n<p>\u041f\u0440\u043e sequences \u0447\u0430\u0441\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u044d\u0442\u043e <strong>\u043b\u0435\u043d\u0438\u0432\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/strong>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\u00a0<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439, \u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0423 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043d\u0430\u0431\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u043d\u0430\u0437\u0430\u0434. \u041c\u044b \u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 sequences, \u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0435 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c, \u0430 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0438 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f. \u041f\u043e \u0441\u0443\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<h4>Sequence<\/h4>\n<p><strong>Sequences<\/strong> &#8212; \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435.<\/p>\n<pre><code class=\"kotlin\">public interface Sequence&lt;out T> { \u00a0\u00a0\u00a0\u00a0public operator fun iterator(): Iterator&lt;T> }<\/code><\/pre>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>asSequence()<\/strong>, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 sequences, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<pre><code class=\"kotlin\">public fun &lt;T> Iterable&lt;T>.asSequence(): Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0return Sequence { this.iterator() } }<\/code><\/pre>\n<p>\u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 sequences \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412\u0441\u0435 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\u00a0\u00a0<\/p>\n<h4>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/h4>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044f &#171;<em>\u041a\u0430\u043f\u0438\u0442\u0430\u043d \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/em>&#171;, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u043c\u0438\u0440\u0435 sequences \u0432\u0441\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<pre><code class=\"kotlin\">public interface Iterator&lt;out T> { \u00a0\u00a0\u00a0\u00a0public operator fun next(): T \u00a0\u00a0\u00a0\u00a0public operator fun hasNext(): Boolean }<\/code><\/pre>\n<p>\u0423 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0435\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430<\/p>\n<ul>\n<li>\n<p><strong>hasNext()<\/strong> &#8212; \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 true \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p><strong>next()<\/strong> &#8212; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0432\u044f\u0437\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 hasNext() + next()<\/p>\n<pre><code class=\"kotlin\">while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0val value = iterator.next() }<\/code><\/pre>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 sequences, \u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0434 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.\u00a0<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 2 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 3 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u043e\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0val resultIterator =\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 3 },\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 2 },\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 1},\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sourceCollection.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0val result = mutableListOf&lt;Int>() \u00a0\u00a0\u00a0\u00a0resultIterator.forEach { result.add(it) }<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043d\u0430\u0448\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430 \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0435\u0448\u043a\u0438, \u0434\u0430\u0432\u0430\u044f \u043d\u0430\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e \u0441\u0443\u0442\u0438, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434.<\/p>\n<p><em>\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00a0\u0440\u0430\u0432\u043d\u044b\u043c 10 => 10 + 1 + 2 + 3 => 16. <\/em><\/p>\n<pre><code class=\"kotlin\">resultIterator.next() => 16 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 16         mapIterator(it + 3).next() + 3\u00a0=> 13 + 3 = 16 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 13 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mapIterator(it + 2).next() + 2\u00a0=> 11 + 2 = 13 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 11 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mapIterator(it + 1).next() + 1 => 10 + 1 = 11 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 10 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sourceIterator().next()\u00a0 => 10<\/code><\/pre>\n<p>\u041d\u0443 \u0432\u043e\u0442, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043c \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442.<\/p>\n<h3>\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/h3>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u0440\u043e\u0432 Jetpack Benchmark. \u0412\u0441\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0440\u0443\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 50 \u0440\u0430\u0437. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b 100 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u0432 \u0438 \u0431\u0440\u0430\u043b \u043c\u0435\u0434\u0438\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430\u043c.<\/p>\n<blockquote>\n<p><em>\u041e\u0444\u0444\u0442\u043e\u043f\u0438\u043a, \u043f\u0440\u043e \u043d\u044e\u0430\u043d\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Jetpack Benchmark \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f.<\/em><\/p>\n<\/blockquote>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 sequence \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 sequences. \u041d\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 sequences \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443. \u042f \u043f\u0440\u0438\u043d\u044f\u043b \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0442\u0435\u0441\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e map, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u043b \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 map \u043d\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u0430\u043b \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u0435\u00a0 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u044e\u0442\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0446\u0438\u0444\u0440\u044b, \u043d\u043e \u0438\u0445 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u0438\u0437\u043a\u0438\u043c.<\/p>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 map<\/h3>\n<pre><code class=\"kotlin\">benchmarkRule.measureRepeated {     sourceCollection.asSequence()         .map { it + 1 }         .map { it + 2 }         .toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; 2 map<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">100<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">41 333<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">42 186<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">532 771<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">529 219<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">5 726 766<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">5 603 207<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">28 594 531<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">27 336 781<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">57 318 875<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">54 838 584<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0438 \u043d\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442. \u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443 sequences \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u043d\u043e \u043e\u043d \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438, \u043a\u0430\u0436\u0434\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"kotlin\">benchmarkRule.measureRepeated {     sourceCollection.asSequence()         .map { it + 1 }         .map { it + 2 }         .map { it + 3 }         .toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; 3 map<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>% <\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">62 094<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">52 029<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">796 137<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">682 835<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>14%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 625 083<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">7 072 713<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>18%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">42 868 792<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">34 840 396<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>19%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">86 425 959<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">69 078 709<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>20%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u044e\u0442\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439. \u041c\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 <strong>15-20%<\/strong> \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<pre><code class=\"kotlin\">benchmarkRule.measureRepeated {     sourceCollection.asSequence()         .map { it + 1 }         .map { it + 2 }         .map { it + 3 }         .map { it + 4 }         .map { it + 5 }         .toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; 5 map<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">102 256<\/p>\n<\/td>\n<td>\n<p align=\"right\">69 116<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>32%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 327 987<\/p>\n<\/td>\n<td>\n<p align=\"right\">968 823<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>27%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">14 172 953<\/p>\n<\/td>\n<td>\n<p align=\"right\">9 975 721<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>30%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">71 466 459<\/p>\n<\/td>\n<td>\n<p align=\"right\">49 866 708<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>30%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">144 102 292<\/p>\n<\/td>\n<td>\n<p align=\"right\">98 161 854<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>32%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430\u0448 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0435\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u043e\u0441 \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0432\u043d\u0443\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 <strong>27-30%<\/strong><\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441 \u043c\u0430\u0433\u0438\u0435\u0439. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d sequences \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 map \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. <\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d sequences \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 map<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d sequences \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 map<\/h3>\n<p>\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f map \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em><u>sequence<\/u><\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u0435\u043a\u043e\u0440\u0438\u0440\u0443\u0435\u043c \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 <em><u>transformer<\/u><\/em>. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0442\u0430 \u0441\u0430\u043c\u0430\u044f \u043b\u044f\u043c\u0431\u0434\u0430 { it + 1 }, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 map.<\/p>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0434\u0435\u043a\u043e\u0440\u0438\u0440\u0443\u0435\u043c \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 <em><u>sequence<\/u><\/em> \u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <em><u>iterator<\/u><\/em><\/p>\n<pre><code class=\"kotlin\">constructor(private val sequence: Sequence&lt;T>,              private val transformer: (T) -> R) : Sequence&lt;R>  { \u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;R> = object : Iterator&lt;R> {  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator()  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): R { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return transformer(iterator.next()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return iterator.hasNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 <strong>next()<\/strong> \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u044b\u0437\u043e\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <em><u>iterator.next()<\/u><\/em> \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0438\u0437 \u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 <u>transformer<\/u> (<em>\u043d\u0430\u0448\u0443 \u043b\u044f\u043c\u0431\u0434\u0443<\/em>)<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): R { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return transformer(iterator.next()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 next() \u043c\u044b \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 sort<\/h3>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.sortedByDescending { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; sort<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">149 580<\/p>\n<\/td>\n<td>\n<p align=\"right\">180 167<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-20%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 214 330<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 563 508<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-11%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">45 126 896<\/p>\n<\/td>\n<td>\n<p align=\"right\">49 879 000<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-11%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">289 200 750<\/p>\n<\/td>\n<td>\n<p align=\"right\">315 998 501<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">662 256 355<\/p>\n<\/td>\n<td>\n<p align=\"right\">711 287 875<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-7%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0443 sequences \u0432\u0441\u0435 \u043f\u043b\u043e\u0445\u043e. \u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u2011<strong>10%.<\/strong><\/p>\n<p>\u041d\u043e \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c: \u044d\u0442\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <strong>\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043e\u0447\u0435\u043d\u044c \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/strong>.<\/p>\n<p>\u042d\u0442\u043e \u043e\u0442\u0447\u0435\u0442\u043b\u0438\u0432\u043e \u0432\u0438\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 map. \u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a!<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"134\" width=\"134\">\n<p align=\"left\"><strong>\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (ns)<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"134\" width=\"134\">\n<p align=\"left\"><strong>map<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">54 838 584<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"134\" width=\"134\">\n<p align=\"left\"><strong>sort<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">711 287 875<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sort \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439. \u042d\u0444\u0444\u0435\u043a\u0442 \u043e\u0442 \u0438\u0445 \u043e\u0431\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sort.\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a sort \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sort<\/h3>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f sort, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 sequences, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0441 \u043e\u0431\u043c\u0430\u043d\u0443\u0442\u044c. \u041e\u043d\u0430 &#171;<em>\u043a\u0430\u043a \u0431\u044b \u043b\u0435\u043d\u0438\u0432\u0430\u044f<\/em>&#187; \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u043c\u0430\u043d\u0430 \u0432\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u0432 \u0446\u0438\u0444\u0440\u0430\u0445.<\/p>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u0435\u0440\u0435\u0442 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e. \u0414\u0430\u043b\u044c\u0448\u0435 \u044d\u0442\u0430 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0437\u0430\u0442\u0435\u043c \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0439, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<pre><code class=\"kotlin\">public fun &lt;T> Sequence&lt;T>.sortedWith(comparator: Comparator&lt;in T>): Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0return object : Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> {  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val sortedList = this@sortedWith.toMutableList() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sortedList.sortWith(comparator) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return sortedList.iterator()  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0439, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sequenceOf(5, 4, 3, 2, 1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.filter { it % 2 == 0 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.sortedBy { it }\u00a0 \/\/ \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it - 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 }<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>sort<\/strong> \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0433\u0434\u0435 \u0442\u043e \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u0443\u0434\u0443\u0442 \u043b\u0435\u043d\u0438\u0432\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0434\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0435\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430.<\/p>\n<p>\u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043d\u043e\u0432\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u043b\u0435\u043d\u0438\u0432\u043e, \u043d\u043e \u0443\u0436\u0435 \u043f\u043e \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043f\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0438 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u0441\u044f (<em>\u0432 \u0442\u044b\u043a\u0432\u0443<\/em>) \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 <\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\/\/ \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0434\u0443\u0449\u0438\u0435 \u0434\u043e sort      \/\/ \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u00a0\u00a0\u00a0\u00a0val list = sequenceOf(5, 4, 3, 2, 1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.filter { it % 2 == 0 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()  \u00a0\u00a0\u00a0\u00a0\/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438      \/\/ \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0435 \u043d\u043e\u0432\u044b\u0439 sequence \u00a0\u00a0\u00a0\u00a0val newSequences = list.sortedBy { it }.asSequence()  \u00a0\u00a0\u00a0\u00a0\/\/ \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043b\u0435\u043d\u0438\u0432\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 sort     \/\/ \u041d\u043e \u0443\u0436\u0435 \u043d\u0430 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u00a0\u00a0\u00a0\u00a0val resultSort = newSequences \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it - 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 }<\/code><\/pre>\n<blockquote>\n<p>\u0424\u043e\u043a\u0443\u0441, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u043a\u0443\u0441.<\/p>\n<\/blockquote>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 filter<\/h3>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u043c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sequences \u0432 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u0440\u0430\u0437\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041f\u0435\u0440\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u043d\u0435 \u043c\u043e\u0433 \u043f\u043e\u043d\u044f\u0442\u044c \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442. \u041d\u043e \u043f\u043e\u0442\u043e\u043c \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0447\u0435\u0442\u043a\u0443\u044e \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0438 \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u043f\u0440\u0438\u0440\u043e\u0434\u0443 \u0435\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u042d\u0442\u0443 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c \u0438\u043c\u0435\u044e\u0442 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435: <em>filter, distinct, take, drop, minus<\/em>.\u00a0<\/p>\n<blockquote>\n<p><strong><em>\u043b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441 &#8212; <\/em><\/strong>\u0427\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438.\u00a0<\/p>\n<p><strong><em>\u0445\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441 &#8212; <\/em><\/strong>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430, \u0442\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c\u0441\u044f \u0438 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u043a 0.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u0434\u0432\u0430 \u0442\u0435\u0441\u0442\u0430 \u043d\u0430 \u043b\u0443\u0447\u0448\u0438\u0439 \u0438 \u0445\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441. \u0417\u0430 \u043b\u0443\u0447\u0448\u0438\u0439 \u044f \u043f\u0440\u0438\u043d\u044f\u043b \u0432\u043e\u0437\u0432\u0440\u0430\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0417\u0430 \u0445\u0443\u0434\u0448\u0438\u0439 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.filter { it in 0..precent_10 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 filter &#8212; \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">33 045<\/p>\n<\/td>\n<td>\n<p align=\"right\">24 060<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>27%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">394 953<\/p>\n<\/td>\n<td>\n<p align=\"right\">292 209<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>26%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">4 185 852<\/p>\n<\/td>\n<td>\n<p align=\"right\">2 985 708<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>29%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">20 955 136<\/p>\n<\/td>\n<td>\n<p align=\"right\">15 083 892<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>28%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">41 977 667<\/p>\n<\/td>\n<td>\n<p align=\"right\">31 003 865<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>26%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435 filter \u0434\u0430\u0435\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 <strong>25%-30%<\/strong>.<\/p>\n<h4>\u0425\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.filter { it in 0..precent_90 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 filter &#8212; \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">42 828<\/p>\n<\/td>\n<td>\n<p align=\"right\">43 557<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">488 092<\/p>\n<\/td>\n<td>\n<p align=\"right\">479 876<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">5 014 653<\/p>\n<\/td>\n<td>\n<p align=\"right\">4 862 738<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>3%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">25 080 389<\/p>\n<\/td>\n<td>\n<p align=\"right\">24 081 423<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">50 261 272<\/p>\n<\/td>\n<td>\n<p align=\"right\">48 016 813<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410 \u0432\u043e\u0442 \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435 \u043d\u0430\u0448 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043a \u043d\u0443\u043b\u044e \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <strong>2%-4%<\/strong><\/p>\n<p>\u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 sequences \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 filter, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041d\u0430\u0433\u0440\u0430\u0434\u043e\u0439 \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u043e\u0442\u043a\u0443\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. <\/p>\n<details class=\"spoiler\">\n<summary>\u0417\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442 filter<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 filter<\/h3>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u0434\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 filter. \u041e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043e\u0434 \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c.<\/p>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em><u>sequence<\/u><\/em>, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043d \u0431\u0435\u0440\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 <em><u>iterator<\/u><\/em> \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em><u>predicate<\/u><\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 (<em>\u043f\u043e \u0441\u0443\u0442\u0438 \u043d\u0430\u0448\u0430 \u043b\u044f\u043c\u0431\u0434\u0430<\/em>)<em><u>\u00a0<\/u><\/em><\/p>\n<pre><code class=\"kotlin\">internal class FilteringSequence&lt;T>( \u00a0\u00a0\u00a0\u00a0private val sequence: Sequence&lt;T>, \u00a0\u00a0\u00a0\u00a0private val sendWhen: Boolean = true, \u00a0\u00a0\u00a0\u00a0private val predicate: (T) -> Boolean ) : Sequence&lt;T> {  \u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> = object : Iterator&lt;T> {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0         val iterator = sequence.iterator()\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0         \/\/ -1 for unknown, 0 for done, 1 for continue         var nextState: Int = -1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0         var nextItem: T? = null<\/code><\/pre>\n<p>\u0412\u0441\u044f \u0441\u043e\u043b\u044c \u0441\u043a\u0440\u044b\u0442\u0430 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <strong>hasNext()<\/strong>. \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430, \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>calcNext()<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\u00a0<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return nextState == 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u00a0 \u0431\u0435\u0436\u0438\u0442 \u0432\u043f\u0435\u0440\u0435\u0434 \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 <em><u>iterator<\/u><\/em><u> <\/u>\u0438 \u0438\u0449\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u043d\u0430\u0448\u0435\u0439 \u043b\u044f\u043c\u0431\u0434\u044b, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0432 <em><u>predicate<\/u><\/em>. \u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0442\u043e \u043e\u043d \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <em><u>nextItem<\/u><\/em><\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0private fun calcNext() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val item = iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (predicate(item) == sendWhen) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextItem = item \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u0418 \u043a\u043e\u0433\u0434\u0430 \u0443 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 <strong>next()<\/strong>, \u043e\u043d \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u0436\u0435 \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <em><u>nextItem<\/u><\/em><\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): T { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0             val result = nextItem \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextItem = null \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = -1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return result as T \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u043d\u044b\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 filter<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"kotlin\">internal class FilteringSequence&lt;T>( \u00a0\u00a0\u00a0\u00a0private val sequence: Sequence&lt;T>, \u00a0\u00a0\u00a0\u00a0private val sendWhen: Boolean = true, \u00a0\u00a0\u00a0\u00a0private val predicate: (T) -> Boolean ) : Sequence&lt;T> {  \u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> = object : Iterator&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator()         \/\/ -1 for unknown, 0 for done, 1 for continue \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var nextState: Int = -1  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var nextItem: T? = null        \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return nextState == 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}          private fun calcNext() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val item = iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (predicate(item) == sendWhen) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextItem = item \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): T { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0             val result = nextItem \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextItem = null \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = -1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return result as T \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e. \u041c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u043f\u0443\u0442\u0435\u043c \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0430\u0440\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u0432 hasNext() + next(). <\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 hasNext() \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0431\u0435\u0436\u0438\u0442 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0438\u0449\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e\u0434 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u044b. <\/p>\n<p>\u0410 \u043d\u0430 \u0432\u044b\u0437\u043e\u0432 next() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439, \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<h3>\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p>\u0422\u0430\u043a \u043e\u0442\u043a\u0443\u0434\u0430 \u0436\u0435 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0442 \u0447\u0438\u0441\u043b\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432?\u00a0<\/p>\n<p>\u0412\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0449\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 <strong>calcNext()<\/strong>, \u0442\u043e \u043c\u044b \u0432 \u0446\u0438\u043a\u043b\u0435 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0438\u0445 \u043d\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u0430. <\/p>\n<p>\u0418 \u043f\u043e\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u0430, \u043c\u044b \u043d\u0435 \u0438\u043c\u0435\u0435\u043c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438. \u041c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0440\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043b\u044f\u043c\u0431\u0434\u0443 \u0438 \u0432\u0441\u0435.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0private fun calcNext() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val item = iterator.next()                  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (predicate(item) == sendWhen) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextItem = item \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u00a0\u041d\u043e \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u043d\u0430\u0448\u0435\u043c\u0443 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u0442\u043e \u0443 \u043d\u0430\u0441 \u0441\u0440\u0430\u0437\u0443 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<p>\u042f \u043f\u043e\u043c\u0435\u0442\u0438\u043b \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u0434\u0435, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043e\u0431\u044a\u0435\u043c.\u00a0<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> = object : Iterator&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator()         \/\/ -1 for unknown, 0 for done, 1 for continue \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var nextState: Int = -1  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var nextItem: T? = null  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0private fun calcNext() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val item = iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (predicate(item) == sendWhen) { *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 nextItem = item\u00a0 *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 nextState = 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0nextState = 0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): T { *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (nextState == 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException()  *  \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 val result = nextItem *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 nextItem = null *\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 nextState = -1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return result as T  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextState == -1) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0calcNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return nextState == 1 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u00a0\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u044d\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u0441\u044a\u0435\u0434\u0430\u044e\u0442 \u043f\u043e\u0447\u0442\u0438 \u0432\u0435\u0441\u044c \u043d\u0430\u0448 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0445\u0443\u0434\u0448\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0418 \u044d\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443 \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 sequences: <em>filter, distinct, take, drop, minus, groupBy<\/em><\/p>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 distinct<\/h3>\n<p>\u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/p>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it * 10 \/ 100 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.distinctBy { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 distinct &#8212; \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">53 566<\/p>\n<\/td>\n<td>\n<p align=\"right\">44 832<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">538 987<\/p>\n<\/td>\n<td>\n<p align=\"right\">451 603<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">7 646 898<\/p>\n<\/td>\n<td>\n<p align=\"right\">6 617 495<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>13%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">43 246 521<\/p>\n<\/td>\n<td>\n<p align=\"right\">39 631 886<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>8%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">95 196 333<\/p>\n<\/td>\n<td>\n<p align=\"right\">87 074 083<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435 distinct \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. <strong>\u0412\u044b\u0438\u0433\u0440\u044b\u0448 10%-15%<\/strong><\/p>\n<h4>\u0425\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it * 90 \/ 100 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.distinctBy { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 distinct &#8212; \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">83 113<\/p>\n<\/td>\n<td>\n<p align=\"right\">100 762<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-21%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 005 813<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 169 785<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">10 851 783<\/p>\n<\/td>\n<td>\n<p align=\"right\">12 856 475<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-18%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">60 652 896<\/p>\n<\/td>\n<td>\n<p align=\"right\">69 893 855<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-15%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">129 569 604<\/p>\n<\/td>\n<td>\n<p align=\"right\">146 594 000<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-13%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0410 \u0432\u043e\u0442 \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 distinct \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c, <strong>\u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 -15%<\/strong><\/p>\n<blockquote>\n<p><em>\u041e\u0444\u0444\u0442\u043e\u043f\u0438\u043a: \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e \u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 kotlin 2.0 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0443\u0436\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0438. \u041e\u0431 \u044d\u0442\u043e\u043c \u0443 \u043c\u0435\u043d\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f.<\/em><\/p>\n<\/blockquote>\n<p>\u041a\u0430\u043a \u0436\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 distinct? <\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u043a\u0430\u043f\u043e\u0442<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 distinct<\/h3>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 distinct \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0447\u0442\u0438 \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0438 filter.<\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u0441\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u044b hasNext(), next() \u0441\u043a\u0440\u044b\u0442\u044b \u0432 \u043e\u0431\u0449\u0435\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <strong>AbstractIterator<\/strong>. <em>\u0422\u0443\u0442 \u0432\u0438\u0434\u0435\u043d \u0437\u0430\u0434\u0435\u043b kotlin \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435)<\/em><\/p>\n<p>\u0412\u0441\u044f \u0441\u043e\u043b\u044c \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0430 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>computeNext()<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 (<em>\u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u043e\u043b\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u044f \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 <\/em><strong><em>calcNext()<\/em><\/strong>).<\/p>\n<pre><code class=\"kotlin\">private class DistinctIterator&lt;T, K>(   private val source: Iterator&lt;T>,    private val keySelector: (T) -> K ) : AbstractIterator&lt;T>() {  \u00a0\u00a0\u00a0\u00a0private val observed = HashSet&lt;K>()  \u00a0\u00a0\u00a0\u00a0override fun computeNext() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (source.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val next = source.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val key = keySelector(next) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (observed.add(key)) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0setNext(next) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0done() \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 <strong>hasNext()<\/strong> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>computeNext()<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u0431\u0435\u0436\u0438\u0442 \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 <em><u>source<\/u><\/em> \u0438 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 HashSet <em><u>observed<\/u><\/em>.\u00a0<\/p>\n<p>\u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0435\u0449\u0435 \u043d\u0435\u0442 \u0432 <em><u>observed<\/u><\/em>, \u0442\u043e \u043e\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442. \u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 <em><u>observed<\/u><\/em>, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u0443\u0436\u0435 \u0440\u0430\u043d\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d.<\/p>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 take<\/h3>\n<p>\u0411\u0435\u0440\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.take { countPercent_10 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 take &#8212; \u0431\u0435\u0440\u0435\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">23 016<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 999<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>83%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">275 794<\/p>\n<\/td>\n<td>\n<p align=\"right\">38 106<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>86%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">2 954 285<\/p>\n<\/td>\n<td>\n<p align=\"right\">381 353<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">14 981 667<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 969 455<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">29 886 927<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 977 857<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0437\u0433\u0440\u043e\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u0432\u044b\u0438\u0433\u0440\u044b\u0448 <strong>\u043f\u043e\u0447\u0442\u0438 90%<\/strong><\/p>\n<h4>\u0425\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.take { countPercent_90 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 take &#8212; \u0431\u0435\u0440\u0435\u0442 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">36 368<\/p>\n<\/td>\n<td>\n<p align=\"right\">29 986<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>18%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">421 734<\/p>\n<\/td>\n<td>\n<p align=\"right\">342 892<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>19%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">4 504 151<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 456 383<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>23%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">22 658 014<\/p>\n<\/td>\n<td>\n<p align=\"right\">17 092 458<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>25%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">45 291 084<\/p>\n<\/td>\n<td>\n<p align=\"right\">34 242 125<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>24%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435 take \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 <strong>\u0432\u044b\u0438\u0433\u0440\u044b\u0448 20%-25%<\/strong>, \u043d\u043e \u043e\u043d \u0432 3 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430<\/p>\n<details class=\"spoiler\">\n<summary>\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f take<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 take<\/h3>\n<p>\u042d\u0442\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0438 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<\/p>\n<p>\u0415\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em><u>left,<\/u><\/em> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0443. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0437\u0430\u0434\u0430\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044e take\u00a0<\/p>\n<p>\u0412 \u043c\u0435\u0442\u043e\u0434\u0435 <strong>hasNext()<\/strong> \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e <em><u>left<\/u><\/em> > 0<\/p>\n<p>\u0412 \u043c\u0435\u0442\u043e\u0434\u0435 <strong>next()<\/strong> \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 <em><u>iterator<\/u><\/em> \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0441\u0447\u0435\u0442\u0447\u0438\u043a <em><u>left<\/u><\/em><\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> = object : Iterator&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var left = count \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator()  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): T { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (left == 0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0left-- \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return left > 0 &amp;&amp; iterator.hasNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 drop<\/h3>\n<p>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.drop { countPercent_90 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 drop &#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u0442 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">23 993<\/p>\n<\/td>\n<td>\n<p align=\"right\">19 886<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>17%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">282 420<\/p>\n<\/td>\n<td>\n<p align=\"right\">191 700<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>32%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 052 168<\/p>\n<\/td>\n<td>\n<p align=\"right\">2 032 454<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>33%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">15 293 025<\/p>\n<\/td>\n<td>\n<p align=\"right\">9 922 920<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>35%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">30 413 583<\/p>\n<\/td>\n<td>\n<p align=\"right\">19 863 292<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>35%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f drop \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432 \u043b\u0443\u0447\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435, <strong>\u0432\u044b\u0438\u0433\u0440\u044b\u0448 30%-35%<\/strong><\/p>\n<h4>\u0425\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.drop { countPercent_10 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 drop &#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">33 701<\/p>\n<\/td>\n<td>\n<p align=\"right\">31 629<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>6%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">385 249<\/p>\n<\/td>\n<td>\n<p align=\"right\">361 036<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>6%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">4 232 115<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 681 223<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>13%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">21 088 674<\/p>\n<\/td>\n<td>\n<p align=\"right\">18 295 245<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>13%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">42 020 209<\/p>\n<\/td>\n<td>\n<p align=\"right\">36 519 083<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>13%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u043a\u0435\u0439\u0441\u0435 drop \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043d\u043e \u0443\u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. <strong>\u0412\u044b\u0438\u0433\u0440\u044b\u0448 6%-10%<\/strong><\/p>\n<details class=\"spoiler\">\n<summary>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 drop \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 drop<\/h3>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 drop \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u0435\u043d \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0443 take. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e\u043a\u0430 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043d\u0435 \u043e\u0431\u043d\u0443\u043b\u0438\u0442\u0441\u044f.\u00a0<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;T> = object : Iterator&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var left = count  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0private fun drop() { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (left > 0 &amp;&amp; iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0left-- \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): T { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0drop() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0drop() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return iterator.hasNext() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<h3>\u0415\u0441\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 take \u0438 drop \u0442\u0430\u043a \u043f\u043e\u0445\u043e\u0436\u0438, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b?<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043c\u0435\u0440\u043e\u0432 take \u0438 drop, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e take \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u0434 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u0430\u043a \u0431\u0440\u0430\u0442\u044c\u044f \u0431\u043b\u0438\u0437\u043d\u0435\u0446\u044b.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"center\"><strong>take<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"left\">\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"center\"><strong>drop<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\"><strong>Collection<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\"><strong>Sequence<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\"><strong>Collection<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\"><strong>Sequence<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\">100<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">23 016<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">3 999<\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>83%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">23 993<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">19 886<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>17%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">275 794<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">38 106<\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>86%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">282 420<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">191 700<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>32%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">2 954 285<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">381 353<\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">3 052 168<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">2 032 454<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>33%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">14 981 667<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">1 969 455<\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">15 293 025<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">9 922 920<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>35%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"89\" width=\"89\">\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">29 886 927<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">3 977 857<\/p>\n<\/td>\n<td data-colwidth=\"60\" width=\"60\">\n<p align=\"center\"><strong>87%<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"105\" width=\"105\">\n<p align=\"right\">30 413 583<\/p>\n<\/td>\n<td data-colwidth=\"104\" width=\"104\">\n<p align=\"right\">19 863 292<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>35%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u00a0\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0432\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <strong>take<\/strong> \u0431\u0435\u0440\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443, \u0442\u0430\u043a \u043a\u0430\u043a \u0435\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c false \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 hasNext()\u00a0<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 <strong>drop<\/strong> \u0432\u0441\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0435 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0444\u0443\u043d\u043a\u0446\u0438\u0438 drop \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0443 \u043d\u0438\u0445 \u043c\u0435\u0442\u043e\u0434 next(). \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0434\u0443\u0442 \u0434\u043e drop. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438 \u043e\u043d\u0438 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u043c\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u0441\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044e \u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 flatten<\/h3>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0432 \u043e\u0434\u0438\u043d \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0412 \u0442\u0435\u0441\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 10 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 flatten<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">147 451<\/p>\n<\/td>\n<td>\n<p align=\"right\">414 376<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-181%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">1 512 504<\/p>\n<\/td>\n<td>\n<p align=\"right\">4 167 416<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-176%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">15 345 992<\/p>\n<\/td>\n<td>\n<p align=\"right\">41 305 365<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-169%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">75 917 917<\/p>\n<\/td>\n<td>\n<p align=\"right\">205 262 897<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-170%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">142 455 042<\/p>\n<\/td>\n<td>\n<p align=\"right\">401 473 313<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-182%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b flatten \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u044b. <strong>\u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 -180%<\/strong><\/p>\n<p>\u0418 \u0447\u0442\u043e \u0435\u0449\u0435 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, <strong>\u044d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u0442\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/strong>, \u0447\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043f\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d flatten \u0438 \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 flatten<\/h3>\n<p>\u042d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0448\u0430\u0433\u0430\u043c.\u00a0<\/p>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <em><u>sequence<\/u><\/em>, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u043d \u0431\u0435\u0440\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 <em><u>iterator<\/u><\/em>. \u042d\u0442\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <em><u>itemIterator<\/u><\/em> \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;E> = object : Iterator&lt;E> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var itemIterator: Iterator&lt;E>? = null<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 <strong>hasNext()<\/strong> \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>ensureItemIterator()<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <em><u>itemIterator<\/u><\/em> \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u043d\u0435\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430. \u041e\u043d\u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0443 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return ensureItemIterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>next()<\/strong> \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 <em><u>itemIterator<\/u><\/em>.<strong>next()<\/strong>\u00a0 \u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): E { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!ensureItemIterator()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException()              return itemIterator!!.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>\u0412\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>ensureItemIterator()<\/strong>. \u041e\u043d\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0 private fun ensureItemIterator(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (itemIterator?.hasNext() == false) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0itemIterator = null  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (itemIterator == null) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val element = iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val nextItemIterator = iterator(transformer(element)) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextItemIterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0itemIterator = nextItemIterator \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return true \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return true \u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f flatten<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;E> = object : Iterator&lt;E> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator = sequence.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var itemIterator: Iterator&lt;E>? = null  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): E { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!ensureItemIterator()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw NoSuchElementException() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return itemIterator!!.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return ensureItemIterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0private fun ensureItemIterator(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (itemIterator?.hasNext() == false) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0itemIterator = null  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0while (itemIterator == null) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (!iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val element = iterator.next() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val nextItemIterator = iterator(transformer(element)) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (nextItemIterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0itemIterator = nextItemIterator \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return true \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return true \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 plus<\/h3>\n<p>\u0421\u043a\u043b\u0435\u0438\u0432\u0430\u0435\u0442 \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/p>\n<pre><code class=\"kotlin\">fun flatten_sequence(sourceCollection: List&lt;List&lt;Int>>): List&lt;Int> { \u00a0\u00a0\u00a0\u00a0return sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.plus(sourceCollection) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 plus<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">28 685<\/p>\n<\/td>\n<td>\n<p align=\"right\">84 539<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-195%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">325 547<\/p>\n<\/td>\n<td>\n<p align=\"right\">902 038<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-177%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 400 506<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 951 631<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-163%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">16 999 468<\/p>\n<\/td>\n<td>\n<p align=\"right\">43 911 542<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-158%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">33 640 031<\/p>\n<\/td>\n<td>\n<p align=\"right\">88 627 167<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-163%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f plus \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b flatten, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f plus \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 flatten. <strong>\u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 -160% &#8212; 170%<\/strong><\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f plus \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 plus<\/h3>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440, \u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 <strong>flatten<\/strong>. <\/p>\n<p>\u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435\u0447\u0435\u0433\u043e \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043a \u043d\u0435\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>flatten<\/strong><\/p>\n<pre><code class=\"kotlin\">public operator fun &lt;T> Sequence&lt;T>.plus(   elements: Iterable&lt;T> ): Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0return sequenceOf(this, elements.asSequence()).flatten() }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 minus<\/h3>\n<p>\u0412\u044b\u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u0434\u043d\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0439<\/p>\n<h4>\u041b\u0443\u0447\u0448\u0438\u0439 \u043a\u0435\u0439\u0441<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.minus(minusCollection_90perc) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 minus &#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u0442 90% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">47 017<\/p>\n<\/td>\n<td>\n<p align=\"right\">37 997<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>19%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">592 271<\/p>\n<\/td>\n<td>\n<p align=\"right\">507 700<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>14%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 578 409<\/p>\n<\/td>\n<td>\n<p align=\"right\">7 801 112<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">48 183 813<\/p>\n<\/td>\n<td>\n<p align=\"right\">45 459 104<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>6%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">101 262 667<\/p>\n<\/td>\n<td>\n<p align=\"right\">94 718 000<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>6%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f minus \u0434\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 <strong>\u0432\u044b\u0438\u0433\u0440\u044b\u0448 6% &#8212; 15%<\/strong><\/p>\n<h4>\u0425\u0443\u0434\u0448\u0438\u0439 \u043a\u0435\u0439\u0441\u00a0<\/h4>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.minus(minusCollection_10perc) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 minus &#8212; \u0443\u0434\u0430\u043b\u044f\u0435\u0442 10% \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">56 503<\/p>\n<\/td>\n<td>\n<p align=\"right\">55 714<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">623 336<\/p>\n<\/td>\n<td>\n<p align=\"right\">615 714<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">6 832 593<\/p>\n<\/td>\n<td>\n<p align=\"right\">6 839 409<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>0%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">37 601 979<\/p>\n<\/td>\n<td>\n<p align=\"right\">39 143 896<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">80 364 834<\/p>\n<\/td>\n<td>\n<p align=\"right\">86 419 125<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-8%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0445\u0443\u0434\u0448\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e minus \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439. <\/p>\n<p>\u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 <strong>\u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 -4% &#8212; 8%<\/strong>. \u041d\u043e \u043d\u0430\u0434\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0435\u0433\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0445\u0443\u0434\u0448\u0435\u0433\u043e \u043a\u0435\u0439\u0441\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f minus \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 minus<\/h3>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f minus \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430 <strong>filter<\/strong>.\u00a0<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 Set \u0438\u0437 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <em><u>elements<\/u><\/em> \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <em><u>other<\/u><\/em>.<\/p>\n<p>\u0410 \u0437\u0430\u0442\u0435\u043c \u043e\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043b\u044f\u043c\u0431\u0434\u0443 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0435\u0442\u0430 <em><u>other<\/u><\/em><\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0444\u0438\u043b\u044c\u0442\u0440 \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0432 \u043d\u0435\u0439 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"kotlin\">public operator fun &lt;T> Sequence&lt;T>.minus(   elements: Iterable&lt;T> ): Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0return object: Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0         override fun iterator(): Iterator&lt;T> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val other = elements.convertToSetForSetOperation() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (other.isEmpty()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return this@minus.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0else \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return this@minus.filterNot { it in other }.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 zip\u00a0<\/h3>\n<p>\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0432\u0443\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u041f\u043e \u0441\u0443\u0442\u0438 \u0430\u043d\u0430\u043b\u043e\u0433 combine \u0434\u043b\u044f flow \u0438 zip \u0432 rxJava<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0return sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.zip(sourceCollection.asSequence()) { v1, v2 -> v1 + v2 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 zip<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">53 215<\/p>\n<\/td>\n<td>\n<p align=\"right\">52 888<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">619 275<\/p>\n<\/td>\n<td>\n<p align=\"right\">601 973<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>3%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">6 765 979<\/p>\n<\/td>\n<td>\n<p align=\"right\">6 306 892<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>7%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">34 140 229<\/p>\n<\/td>\n<td>\n<p align=\"right\">31 015 625<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">68 545 855<\/p>\n<\/td>\n<td>\n<p align=\"right\">60 928 042<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>11%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f zip \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 <strong>5% &#8212; 10%<\/strong> \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d zip \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 zip<\/h3>\n<p>\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 zip \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0415\u043c\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <em><u>sequence1<\/u><\/em> \u0438 <em><u>sequence2<\/u><\/em>.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0430\u0445 <strong>hasNext()<\/strong> \u0438 <strong>next()<\/strong> \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0430\u0440\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 <em><u>sequence1<\/u><\/em> \u0438 <em><u>sequence2<\/u><\/em>.\u00a0\u00a0<\/p>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u043a\u043e\u043d\u0447\u0430\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u0442\u043e \u0435\u0435 \u043c\u0435\u0442\u043e\u0434 <strong>hasNext()<\/strong> \u043d\u0430\u0447\u043d\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c false \u0438 \u043e\u0431\u0449\u0438\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 zip \u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0440\u043d\u0435\u0442 false \u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u043c.<\/p>\n<pre><code class=\"kotlin\">internal class MergingSequence&lt;T1, T2, V>  constructor( \u00a0\u00a0\u00a0\u00a0private val sequence1: Sequence&lt;T1>, \u00a0\u00a0\u00a0\u00a0private val sequence2: Sequence&lt;T2>, \u00a0\u00a0\u00a0\u00a0private val transform: (T1, T2) -> V ) : Sequence&lt;V> {  \u00a0\u00a0\u00a0\u00a0override fun iterator(): Iterator&lt;V> = object : Iterator&lt;V> { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator1 = sequence1.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val iterator2 = sequence2.iterator()  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun next(): V { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return transform(iterator1.next(), iterator2.next()) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0override fun hasNext(): Boolean { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return iterator1.hasNext() &amp;&amp; iterator2.hasNext()  \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \u00a0\u00a0\u00a0\u00a0} }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 chunked<\/h3>\n<p>\u0421\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041f\u043e \u0441\u0443\u0442\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0434\u043b\u0438\u043d\u043d\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u0440\u0446\u0438\u044f\u043c\u0438 \u043f\u043e N \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.chunked(100) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f chunked<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">46 775<\/p>\n<\/td>\n<td>\n<p align=\"right\">74 951<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-60%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">391 686<\/p>\n<\/td>\n<td>\n<p align=\"right\">446 668<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-14%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 909 134<\/p>\n<\/td>\n<td>\n<p align=\"right\">3 959 575<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">19 408 088<\/p>\n<\/td>\n<td>\n<p align=\"right\">19 955 328<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-3%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">38 675 740<\/p>\n<\/td>\n<td>\n<p align=\"right\">39 789 334<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-3%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f chunked \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c, \u043d\u043e \u044d\u0442\u043e \u043b\u0435\u0433\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u043d\u0435\u0435 \u043b\u0435\u0433\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 groupBy<\/h3>\n<p>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Map \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043a\u043b\u044e\u0447\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.groupBy { it * 10 \/ 100 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 groupBy<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">64 973<\/p>\n<\/td>\n<td>\n<p align=\"right\">50 670<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>22%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">716 454<\/p>\n<\/td>\n<td>\n<p align=\"right\">579 001<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>19%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">9 308 440<\/p>\n<\/td>\n<td>\n<p align=\"right\">7 863 016<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">56 283 417<\/p>\n<\/td>\n<td>\n<p align=\"right\">51 490 709<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">121 278 750<\/p>\n<\/td>\n<td>\n<p align=\"right\">110 725 750<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>9%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f groupBy \u0434\u0430\u0435\u0442 <strong>\u0432\u044b\u0438\u0433\u0440\u044b\u0448 10% &#8212; 15%<\/strong><\/p>\n<details class=\"spoiler\">\n<summary>\u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0442\u0433\u0430\u0434\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0437\u0430\u0433\u0430\u0434\u043a\u0443, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442<\/summary>\n<div class=\"spoiler__content\">\n<h3>\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 groupBy<\/h3>\n<p>\u0414\u0435\u0442\u0441\u043a\u0430\u044f \u0437\u0430\u0433\u0430\u0434\u043a\u0430, \u043d\u0430\u0439\u0434\u0438\u0442\u0435 10 \u043e\u0442\u043b\u0438\u0447\u0438\u0439<\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f sequences<\/h4>\n<pre><code class=\"kotlin\">public inline fun &lt;T, K, M : MutableMap&lt;in K, MutableList&lt;T>>>    Sequence&lt;T>.groupByTo(destination: M, keySelector: (T) -> K): M  { \u00a0\u00a0\u00a0\u00a0for (element in this) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val key = keySelector(element) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val list = destination.getOrPut(key) { ArrayList&lt;T>() } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0list.add(element) \u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0return destination }<\/code><\/pre>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f collections<\/h4>\n<pre><code class=\"kotlin\">public inline fun &lt;T, K, M : MutableMap&lt;in K, MutableList&lt;T>>>    Iterable&lt;T>.groupByTo(destination: M, keySelector: (T) -> K): M  { \u00a0\u00a0\u00a0\u00a0for (element in this) { \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val key = keySelector(element) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val list = destination.getOrPut(key) { ArrayList&lt;T>() } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0list.add(element) \u00a0\u00a0\u00a0\u00a0}  \u00a0\u00a0\u00a0\u00a0return destination }<\/code><\/pre>\n<p><strong>\u041e\u0442\u0432\u0435\u0442:<\/strong> \u0420\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0438\u043f\u0435 \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0430<\/p>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u0445 \u0438 sequences \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u0430. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u043d\u0430\u0448 \u043f\u0440\u043e\u0444\u0438\u0442 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430 \u0441\u0447\u0435\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u043f\u043e \u0441\u0443\u0442\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432.<\/p>\n<\/p>\n<\/div>\n<\/details>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 sequences<\/h3>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sequences \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b:<\/p>\n<p><strong>\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/strong> &#8212; \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 sequences, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0441\u0435\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430.\u00a0\u0412 \u0441\u0432\u043e\u0435\u043c \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0438 \u0438\u0437\u043c\u0435\u0440\u0438\u043b \u0438\u0445 \u0432\u0441\u0435.<\/p>\n<p><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/strong> &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <strong>plus, minus <\/strong>\u0438 \u0434\u0440\u0443\u0433\u0438\u0435.<\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432, \u0442\u043e \u0438 \u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0438\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>\u041d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c \u0438\u0445 \u0432\u0441\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u0430\u043a \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u043e \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <strong>plus, minus, distinct<\/strong><\/p>\n<p>\u0422\u0435 \u0436\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b, \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. \u042f\u0440\u043a\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <strong>groupBy, associateBy, fold<\/strong><\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0442\u0435\u043c, \u043a\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b \u0434\u043e \u043a\u043e\u043d\u0446\u0430. \u042f \u0438\u0441\u043a\u0440\u0435\u043d\u043d\u0435 \u0432\u0430\u043c\u0438 \u0433\u043e\u0440\u0436\u0443\u0441\u044c. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0438 \u044f \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043a\u0430\u043a sequences \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c.\u00a0\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0438\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 sequences \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 3 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <strong>sort, flatten, plus,<\/strong> \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 sequences, \u0441\u0442\u0430\u0432\u0438\u0442 \u043a\u0440\u0435\u0441\u0442 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445, \u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<p>\u0412\u043e \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043c\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sequences. \u0412\u044b \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u0430\u0435\u0442\u0435 \u0438 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0430\u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0438\u0433\u0440\u0430\u0435\u0442\u0435.<\/p>\n<blockquote>\n<p>\u042f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <strong>distinct<\/strong>, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043c\u043e\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 kotlin \u0438 \u0432\u044b\u0439\u0434\u0443\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 kotlin 2.0.<\/p>\n<p><em>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c \u0432 \u043c\u043e\u0435\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 (<\/em><a href=\"https:\/\/habr.com\/ru\/articles\/768306\/\" rel=\"noopener noreferrer nofollow\">\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f sequences \u2014 \u0438\u043b\u0438 \u043a\u0430\u043a \u043c\u043e\u0439 \u043a\u043e\u0434 \u043f\u043e\u043f\u0430\u043b \u0432 kotlin<\/a><em>)<\/em><\/p>\n<\/blockquote>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u043c\u043e\u044f \u0441\u0442\u0430\u0442\u044c\u044f, \u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u0443\u0439\u0442\u0435 \u0437\u0430 \u043c\u043e\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430 medium <a href=\"https:\/\/medium.comt\/measuring-sequences-6536db14d576\" rel=\"noopener noreferrer nofollow\">&#171;Measuring sequences&#187;<\/a>. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0435\u0435 \u043d\u0430 \u043c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0435.<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/768250\/\"> https:\/\/habr.com\/ru\/articles\/768250\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u042f \u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 SberDevices \u0438 \u043f\u0440\u043e\u0432\u043e\u0436\u0443 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043f\u043e Android (<em>\u0431\u043e\u043b\u0435\u0435 100 \u0432 \u0433\u043e\u0434<\/em>). \u041f\u043e \u043e\u043f\u044b\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u044f \u0432\u0438\u0436\u0443, \u0447\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0431\u043e\u044f\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sequences \u0432 \u0440\u0430\u0431\u043e\u0442\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u0410 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 sequences \u0434\u0430\u044e\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0430 \u0432 \u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448.<\/p>\n<p>\u0412 \u0441\u0435\u0442\u0438 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u0442 \u0447\u0435\u0442\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u044d\u0442\u043e\u043c (<em>\u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u044f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b<\/em>). \u0412\u0435\u0437\u0434\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0438\u0435 \u0444\u0440\u0430\u0437\u044b, \u0431\u0435\u0437 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u043e\u0432 \u0438 \u0446\u0438\u0444\u0440. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043f\u043e\u0440\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e detect, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0433\u043b\u0430\u0441\u0438\u0442<\/p>\n<blockquote>\n<p><strong><em>CouldBeSequence:<\/em><\/strong><em> <\/em>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 sequences, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 3 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u044e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u0434 kotlin, \u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 sequences. \u041f\u043e\u043d\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 sequences \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448. \u041c\u043d\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u043a \u044d\u0442\u043e\u043c\u0443 \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0438 \u043a\u0435\u0439\u0441\u044b.<\/p>\n<h3>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043b\u044e\u0431\u0438\u0442 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<h4>\u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448. \u0412\u0441\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0432\u0430\u0436\u043d\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0443 \u0432\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0432\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>sort<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>flatten<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0422\u044f\u0436\u0435\u043b\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"106\" width=\"106\">\n<p align=\"left\"><strong>plus<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 flatten<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u043d\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\"><strong>distinct<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0430\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0432\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 kotlin 2.0<\/p>\n<p align=\"left\"><em>\u041e\u0444\u0444\u0442\u043e\u043f\u0438\u043a, \u043f\u0440\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 distinct \u0432 kotlin 2.0 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f<\/em><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"109\" width=\"109\">\n<p align=\"left\"><strong>chunked<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041b\u0435\u0433\u043a\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0430\u0435\u0442 \u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0448<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0412\u044b\u0438\u0433\u0440\u044b\u0448<\/h4>\n<p>\u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435\u00a0 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 sequences, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0430\u0434\u0443\u0442 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0443\u0436\u0435 \u0441 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.<\/p>\n<h4>\u0412\u044b\u0432\u043e\u0434\u044b<\/h4>\n<blockquote>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u043e detect <strong><em>CouldBeSequence<\/em><\/strong> \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <strong>sort, flatten, plus<\/strong><\/p>\n<\/blockquote>\n<p>\u042f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0432\u043e\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 sequences \u043d\u0430 \u041c\u043e\u0431\u0438\u0443\u0441 2023 \u0438 \u0442\u0435, \u043a\u043e\u043c\u0443 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e, \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u043c\u043e\u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430  <a href=\"https:\/\/youtu.be\/bg3ICZVRDOs?si=ZSqq2_nRoMZjT25F\" rel=\"noopener noreferrer nofollow\"><u>Mobius spring 2023, \u0434\u043e\u043a\u043b\u0430\u0434 &#171;\u0418\u0437\u043c\u0435\u0440\u044f\u044f sequences&#187;<\/u><\/a><\/p>\n<p>\u0422\u0435 \u0436\u0435, \u043a\u0442\u043e \u043b\u044e\u0431\u0438\u0442 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 sequences \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0438\u0440 sequences. \u0414\u0430\u043b\u044c\u0448\u0435 \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446 \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439.<\/p>\n<h3>\u0422\u0435\u043e\u0440\u0438\u044f<\/h3>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f sequences, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439<\/h4>\n<ul>\n<li>\n<p>\u041a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\">\n<div><figcaption>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 &#8212; \u044d\u0442\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435, \u0447\u0442\u043e \u0432 \u0442\u0435\u043e\u0440\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c.<\/p>\n<h4>\u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 sequences<\/h4>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0445\u043e\u0434 \u0446\u0438\u043a\u043b\u0430<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 sequences \u043c\u044b \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u043c \u0432\u0441\u0435\u0445 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e sequences \u0434\u043e\u043b\u0436\u043d\u044b \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0439 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0430\u043a \u043b\u0438 \u044d\u0442\u043e \u0438 \u043d\u0435\u0442 \u043b\u0438 \u0442\u0443\u0442 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u0435\u0439 \u0438 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<h4>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 sequences<\/h4>\n<p>\u041f\u0440\u043e sequences \u0447\u0430\u0441\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u044d\u0442\u043e <strong>\u043b\u0435\u043d\u0438\u0432\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/strong>, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e.\u00a0<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0435\u0439, \u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0423 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043d\u0430\u0431\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u043d\u0430\u0437\u0430\u0434. \u041c\u044b \u0437\u043d\u0430\u0435\u043c \u043f\u0440\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 sequences, \u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0435 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c, \u0430 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0438 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f. \u041f\u043e \u0441\u0443\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.<\/p>\n<h4>Sequence<\/h4>\n<p><strong>Sequences<\/strong> &#8212; \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u043d\u0430\u0434 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u0431\u043e\u043b\u0435\u0435.<\/p>\n<pre><code class=\"kotlin\">public interface Sequence&lt;out T> { \u00a0\u00a0\u00a0\u00a0public operator fun iterator(): Iterator&lt;T> }<\/code><\/pre>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <strong>asSequence()<\/strong>, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 sequences, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<pre><code class=\"kotlin\">public fun &lt;T> Iterable&lt;T>.asSequence(): Sequence&lt;T> { \u00a0\u00a0\u00a0\u00a0return Sequence { this.iterator() } }<\/code><\/pre>\n<p>\u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 sequences \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412\u0441\u0435 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.\u00a0\u00a0<\/p>\n<h4>\u0418\u0442\u0435\u0440\u0430\u0442\u043e\u0440<\/h4>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044f &#171;<em>\u041a\u0430\u043f\u0438\u0442\u0430\u043d \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u044c<\/em>&#171;, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u043c\u0438\u0440\u0435 sequences \u0432\u0441\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0430 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u0445, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<pre><code class=\"kotlin\">public interface Iterator&lt;out T> { \u00a0\u00a0\u00a0\u00a0public operator fun next(): T \u00a0\u00a0\u00a0\u00a0public operator fun hasNext(): Boolean }<\/code><\/pre>\n<p>\u0423 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0435\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430<\/p>\n<ul>\n<li>\n<p><strong>hasNext()<\/strong> &#8212; \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 true \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p><strong>next()<\/strong> &#8212; \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0432\u044f\u0437\u043a\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 hasNext() + next()<\/p>\n<pre><code class=\"kotlin\">while (iterator.hasNext()) { \u00a0\u00a0\u00a0\u00a0val value = iterator.next() }<\/code><\/pre>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 sequences, \u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0434 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.\u00a0<\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0sourceCollection.asSequence() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 1 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 2 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.map { it + 3 } \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.toList()<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u043e\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e.<\/p>\n<pre><code class=\"kotlin\">\u00a0\u00a0\u00a0\u00a0val resultIterator =\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 3 },\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 2 },\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0MapIterator( { it + 1},\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sourceCollection.iterator() \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0) \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0val result = mutableListOf&lt;Int>() \u00a0\u00a0\u00a0\u00a0resultIterator.forEach { result.add(it) }<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043d\u0430\u0448\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u0437\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0432 \u0434\u0440\u0443\u0433\u0430 \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0435\u0448\u043a\u0438, \u0434\u0430\u0432\u0430\u044f \u043d\u0430\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c\u0443 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 \u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u043e \u0441\u0443\u0442\u0438, \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0432\u044b\u0437\u043e\u0432\u0430 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434.<\/p>\n<p><em>\u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00a0\u0440\u0430\u0432\u043d\u044b\u043c 10 => 10 + 1 + 2 + 3 => 16. <\/em><\/p>\n<pre><code class=\"kotlin\">resultIterator.next() => 16 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 16         mapIterator(it + 3).next() + 3\u00a0=> 13 + 3 = 16 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 13 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mapIterator(it + 2).next() + 2\u00a0=> 11 + 2 = 13 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 11 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mapIterator(it + 1).next() + 1 => 10 + 1 = 11 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0| 10 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0sourceIterator().next()\u00a0 => 10<\/code><\/pre>\n<p>\u041d\u0443 \u0432\u043e\u0442, \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u043c \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442.<\/p>\n<h3>\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/h3>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u0440\u043e\u0432 Jetpack Benchmark. \u0412\u0441\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u043d\u0430 \u0440\u0443\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 50 \u0440\u0430\u0437. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b 100 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u0432 \u0438 \u0431\u0440\u0430\u043b \u043c\u0435\u0434\u0438\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430\u043c.<\/p>\n<blockquote>\n<p><em>\u041e\u0444\u0444\u0442\u043e\u043f\u0438\u043a, \u043f\u0440\u043e \u043d\u044e\u0430\u043d\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Jetpack Benchmark \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f.<\/em><\/p>\n<\/blockquote>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0432 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 sequence \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 sequences. \u041d\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 sequences \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0432\u044b\u0438\u0433\u0440\u044b\u0448 \u043e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443. \u042f \u043f\u0440\u0438\u043d\u044f\u043b \u0437\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0442\u0435\u0441\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u044e map, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u043d\u0430\u043c \u0440\u0430\u0432\u043d\u043e\u0432\u0435\u0441\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u043b \u0432\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 map \u043d\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u0430\u043b \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u0435\u00a0 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u044e\u0442\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0432\u044b\u043a\u043b\u0430\u0434\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u0446\u0438\u0444\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u041d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0446\u0438\u0444\u0440\u044b, \u043d\u043e \u0438\u0445 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u0438\u0437\u043a\u0438\u043c.<\/p>\n<h3>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0435 map<\/h3>\n<pre><code class=\"kotlin\">benchmarkRule.measureRepeated {     sourceCollection.asSequence()         .map { it + 1 }         .map { it + 2 }         .toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; 2 map<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">100<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">41 333<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">42 186<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>-2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">532 771<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">529 219<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>1%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">5 726 766<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">5 603 207<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>2%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">28 594 531<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">27 336 781<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"164\" width=\"164\">\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td data-colwidth=\"186\" width=\"186\">\n<p align=\"right\">57 318 875<\/p>\n<\/td>\n<td data-colwidth=\"200\" width=\"200\">\n<p align=\"right\">54 838 584<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>4%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0432 \u044d\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0438 \u043d\u0435 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442. \u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443 sequences \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448, \u043d\u043e \u043e\u043d \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438, \u043a\u0430\u0436\u0434\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u043c \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<pre><code class=\"kotlin\">benchmarkRule.measureRepeated {     sourceCollection.asSequence()         .map { it + 1 }         .map { it + 2 }         .map { it + 3 }         .toList() }<\/code><\/pre>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 &#8212; 3 map<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\"><strong>\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u043f\u0438\u0441\u043a\u0430<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"right\"><strong>Collection (ns)<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\"><strong>Sequence (ns)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>% <\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">100<\/p>\n<\/td>\n<td>\n<p align=\"right\">62 094<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">52 029<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>16%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">1 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">796 137<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">682 835<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>14%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">10 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">8 625 083<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">7 072 713<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>18%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">50 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">42 868 792<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">34 840 396<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>19%<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"154\" width=\"154\">\n<p align=\"right\">100 000<\/p>\n<\/td>\n<td>\n<p align=\"right\">86 425 959<\/p>\n<\/td>\n<td data-colwidth=\"175\" width=\"175\">\n<p align=\"right\">69 078 709<\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>20%<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u044e\u0442\u0441\u044f \u0441 \u0442\u0435\u043e\u0440\u0438\u0435\u0439. \u041c\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0449\u0443\u0442\u0438\u043c\u044b\u0439 \u0432\u044b\u0438\u0433\u0440\u044b\u0448 <strong>15<\/strong><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-357802","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/357802","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=357802"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/357802\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=357802"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=357802"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=357802"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}