{"id":362487,"date":"2024-05-21T01:36:06","date_gmt":"2024-05-21T01:36:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=362487"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T01:36:06","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=362487","title":{"rendered":"<span>\u0412\u0441\u044f \u043c\u043e\u0449\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0432 Wolfram Language<\/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 decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d89\/111\/4bc\/d891114bca80c313148702e6e261e712.png\" alt=\"\u042d\u043d\u0430\u043a\u0438\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u0437 ; -> \/ : . .. &#8230; | _ __ ___, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435&#187; title=&#187;\u042d\u043d\u0430\u043a\u0438\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u0437 ; -> \/ : . .. &#8230; | _ __ ___, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435&#187; width=&#187;1920&#8243; height=&#187;800&#8243; data-src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d89\/111\/4bc\/d891114bca80c313148702e6e261e712.png&#187;\/><\/p>\n<div><figcaption>\u042d\u043d\u0430\u043a\u0438\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u0437 <code>; -> \/ : . .. ... | _ __ ___<\/code>, <br \/>\u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435<\/figcaption><\/div>\n<\/figure>\n<blockquote>\n<p>\u0420\u0435\u0434\u043a\u0430\u044f \u043f\u0442\u0438\u0446\u0430 \u0434\u043e\u043b\u0435\u0442\u0438\u0442 \u0434\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u0414\u043d\u0435\u043f\u0440\u0430, \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0441\u0438\u043b\u0438\u0442 \u0432\u0441\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0432 WL. \u041d\u0435\u0442 \u0435\u043c\u0443 \u0440\u0430\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0435. \u0427\u0443\u0434\u0435\u043d \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u0435\u043d \u044f\u0437\u044b\u043a \u044d\u0442\u043e\u0442. \u0418\u0437\u043e\u0431\u0438\u043b\u0443\u0435\u0442 \u043e\u043d \u0442\u043e\u0447\u043a\u0430\u043c\u0438, \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0434\u0430 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432 \u0433\u043b\u0430\u0437\u0430\u0445 \u0440\u044f\u0431\u0438\u0442, \u0434\u0430 \u0440\u0430\u0437\u0443\u043c \u043c\u0443\u0442\u043d\u0435\u0435\u0442. <\/p>\n<\/blockquote>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u043d\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0432 Wolfram Language (WL) \u0438 \u043f\u043e\u043a\u0430\u0436\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u0433\u0434\u0435 \u044f \u0441\u0430\u043c \u0438 \u043c\u043e\u0438 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442. \u0410 \u0442\u0430\u043a\u0436\u0435 \u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0432\u0441\u0435\u043c\u0438 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043b\u0438\u0447\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430 WL. \u041f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u043d\u0430 Python \u0438 C#. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 WL \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. <\/p>\n<h2>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\"><u>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\"><u>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Python<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\"><u>\u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\" rel=\"noopener noreferrer nofollow\"><u>\u0427\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5\" rel=\"noopener noreferrer nofollow\"><u>MatchQ<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6\" rel=\"noopener noreferrer nofollow\"><u>Switch<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\" rel=\"noopener noreferrer nofollow\"><u>Cases<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#8\" rel=\"noopener noreferrer nofollow\"><u>Replce*<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#9\" rel=\"noopener noreferrer nofollow\"><u>Set*<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#10\" rel=\"noopener noreferrer nofollow\"><u>\u0428\u0430\u0431\u043b\u043e\u043d\u044b<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#11\" rel=\"noopener noreferrer nofollow\"><u>\u0422\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#12\" rel=\"noopener noreferrer nofollow\"><u>\u0412\u0441\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#13\" rel=\"noopener noreferrer nofollow\"><u>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#14\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#15\" rel=\"noopener noreferrer nofollow\"><u>\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#16\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#17\" rel=\"noopener noreferrer nofollow\"><u>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#18\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#19\" rel=\"noopener noreferrer nofollow\"><u>\u041e\u043f\u0446\u0438\u0438<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#20\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/21\" rel=\"noopener noreferrer nofollow\"><u>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#22\" rel=\"noopener noreferrer nofollow\"><u>\u0414\u043e\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#23\" rel=\"noopener noreferrer nofollow\"><u>\u0423\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#24\" rel=\"noopener noreferrer nofollow\"><u>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#25\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0447\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u0430\u043a <em>&#171;\u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433&#187;<\/em> \u0438\u043b\u0438 <em>&#171;\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c\/\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c&#187;<\/em>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043e\u0447\u0435\u0432\u0430\u043b \u0432 \u044f\u0437\u044b\u043a\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412 Python \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.10, \u0432 C# \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 7, \u0432 JavaScript \u0435\u0433\u043e \u043d\u0435\u0442 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441. \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 F# \u0438\u043b\u0438 \u0432 Scala, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0438 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c. \u041d\u043e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0434\u0438 <em>Wolfram Language<\/em>. \u0412 \u043d\u0435\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.0, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u0432 1988 \u0433\u043e\u0434\u0443. \u0422.\u0435. \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u044f\u0437\u044b\u043a\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u044f \u0440\u0430\u0434\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c Lisp, \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0431\u044b\u043b\u043e \u0435\u0449\u0435 \u0440\u0430\u043d\u044c\u0448\u0435. <\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043a \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u043d\u0438\u043c \u0432 C#, Python, Scala, F#. \u0420\u0430\u0434\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u0432\u0430 \u044f\u0437\u044b\u043a\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0434\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430. \u041f\u0440\u0438\u0447\u0435\u043c, \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u044f \u043d\u0430\u0448\u0435\u043b \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 C# \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b, Python \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 Scala \u043c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>case class MyClass<\/code>, \u0430 F# \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0430\u0445\u0430\u0440\u0430 \u0441 \u0432\u044b\u0447\u0443\u0440\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c \u043d\u0430 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram.  <\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Python<\/h2>\n<p>\u0412\u0441\u0435 \u043b\u044e\u0431\u044f\u0442 Python \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0443\u0433\u0430\u0442\u044c \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 WL \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435. \u0418\u0442\u0430\u043a, \u0432 Python \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u0430 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0438\u0445 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439. \u0427\u0442\u043e \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0434\u0430\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u042f \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Python \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u0435, \u0447\u0442\u043e \u0438 \u0441\u0435\u0439\u0447\u0430\u0441. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: <\/p>\n<pre><code class=\"python\">number = 1 match number:     case 1:         print('\u043e\u0434\u0438\u043d')     case 2:         print('\u0434\u0432\u0430')<\/code><\/pre>\n<p>\u0418\u043b\u0438 \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 <em>wildcard<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 &#171;\u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e&#187;, \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u043e: <\/p>\n<pre><code class=\"python\">number = 2 match number:     case 1:         print(\"\u043e\u0434\u0438\u043d\")     case _:         print(\"\u043d\u0435 \u043e\u0434\u0438\u043d\")<\/code><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043f\u0438\u0441\u043a\u0438 \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0438: <\/p>\n<pre><code class=\"python\">list1 = [1, 2] match list1:     case []:            print('\u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a')     case [x]:         print('\u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043e\u0434\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c x = {0}'.format(x))     case [x, *_]:         print('\u043c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 x = {0}'.format(x))<\/code><\/pre>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0448\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x<\/code>.<\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0442\u043e \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043d\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 &#8212; \u044d\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>dataclass<\/code>: <\/p>\n<pre><code class=\"python\">from dataclasses import dataclass  @dataclass class Coordinate:     x: int     y: int     z: int  coordinate = Coordinate(1, 2, 3) match coordinate:     case Coordinate(0, 0, 0):         print('\u041d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442')     case _:         print('\u041b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u043e\u0447\u043a\u0430')<\/code><\/pre>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0438 \u0432\u0441\u0435. \u042f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u043c\u0435\u043d\u044f \u0437\u043d\u0430\u044e\u0442 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0432 Python, \u043d\u043e \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0440\u0435\u0447\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u0441\u0442\u0430\u0442\u044c\u0438. \u0427\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u044f \u0432\u0437\u044f\u043b \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/yandex_praktikum\/articles\/547902\/\" rel=\"noopener noreferrer nofollow\">&#171;Pattern matching. \u0422\u0435\u043f\u0435\u0440\u044c \u0438 \u0432 Python&#187;<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0430\u0432\u0442\u043e\u0440 <a class=\"mention\" href=\"\/users\/topenkoff\">@topenkoff<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>\u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/h2>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c Wolfram Language, \u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e <em>&#171;\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c&#187;<\/em> \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c <em>&#171;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c&#187;<\/em>. <\/p>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 Wolfram \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u043e\u043c\u044b \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p><strong>\u0410\u0442\u043e\u043c<\/strong> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 &#8212; \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e, \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b. <\/p>\n<p><strong>\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/strong> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0430\u0442\u043e\u043c\u043e\u0432 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043d\u0438\u0445. \u041d\u0438\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0430\u0442\u043e\u043c\u043e\u0432: <\/p>\n<pre><code class=\"haskell\">1           (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Integer, \u0442.\u0435. \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 2.0         (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Real, \u0442.\u0435. \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 1\/3         (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Rational, \u0442.\u0435. \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 4 * I       (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Complex, \u0442.\u0435. \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) \"string\"    (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c String, \u0442.\u0435. \u0441\u0442\u0440\u043e\u043a\u0430 *) variable    (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Symbol, \u0442.\u0435. \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\/\u0444\u0443\u043d\u043a\u0446\u0438\u0438\/\u0442\u0438\u043f\u0430 *)<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u0435\u043d, \u0442.\u0435. \u044d\u0442\u043e \u043d\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438 \u043e\u043d \u0434\u0430\u0436\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cca\/0e4\/bea\/cca0e4beaca7c63b0ed092a9467b2981.png\" alt=\"\u041d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0431\u043b\u043e\u043a\u043d\u043e\u0442, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438\" title=\"\u041d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0431\u043b\u043e\u043a\u043d\u043e\u0442, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438\" width=\"776\" height=\"584\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cca\/0e4\/bea\/cca0e4beaca7c63b0ed092a9467b2981.png\"\/><\/p>\n<div><figcaption>\u041d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0431\u043b\u043e\u043a\u043d\u043e\u0442, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0435\u0449\u0435 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u0435\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0438 6 \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0430\u0442\u043e\u043c\u044b \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0430\u0442\u043e\u043c\u044b. \u0425\u043e\u0442\u044c \u0438 \u0432 \u0444\u0438\u0437\u0438\u043a\u0435 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u043e\u043c\u044b \u0435\u0449\u0435 \u043a\u0430\u043a \u0434\u0435\u043b\u044f\u0442\u0441\u044f, \u043d\u043e \u0432 WL \u043e\u043d\u0438, \u0443\u0432\u044b, \u043d\u0435\u0434\u0435\u043b\u0438\u043c\u044b. <\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u044f \u0431\u0443\u0434\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 WL, \u043d\u043e \u0437\u043d\u0430\u0439\u0442\u0435 &#8212; \u044f \u0438\u043c\u0435\u044e \u0432\u0432\u0438\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u043e\u043b\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0422.\u0435. <code>{1, 2, 3}<\/code> &#8212; \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0410 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>Point[{1, 2, 3}]<\/code> \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 &#8212; \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u043d\u043e \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 WL &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. <\/p>\n<p>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram \u043e\u0442\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u043a\u043e\u043b\u044e\u0447\u0438\u0445 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a&#187; <code>(**)<\/code>, \u0442.\u0435. \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u043c\u0438: <\/p>\n<pre><code class=\"haskell\">code[ (* \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 *) ] (* \u0435\u0449\u0435 \u043e\u0434\u043d\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 *)<\/code><\/pre>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h2>\u0427\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/h2>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 Wolfram \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u041f\u043e \u043f\u0440\u0430\u0432\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0410\u0411\u0421\u041e\u041b\u042e\u0422\u041d\u041e \u0412\u0421\u0415 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 Wolfram Langage \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u043d\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e. \u041c\u044b \u0436\u0435 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u044f\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u0410 \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438. <\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h2>MatchQ<\/h2>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; \u044d\u0442\u043e <code>MatchQ[expr, pattern]<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432\u0442\u043e\u0440\u044b\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0438\u0445. \u041f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code>, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0435 \u043c\u0430\u0442\u0447\u0430\u0442\u0441\u044f &#8212; <code>False<\/code>. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &#8212; \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a <code>Equals<\/code>, \u0442.\u0435. \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0418 \u0442\u0443\u0442 \u043c\u044b \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 Python, \u0433\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 <code>case<\/code> \u0438\u0437 Python:<\/p>\n<pre><code class=\"python\">MatchQ[1, 1] (* => True *) MatchQ[{1, 2, 3}, {1, 2, 3}] (* => True*)<\/code><\/pre>\n<p>\u042f \u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 Python \u0432\u043e\u0442 \u0442\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>If<\/code>: <\/p>\n<pre><code class=\"haskell\">number = 1 If[MatchQ[number, 1],    Print[\"\u043e\u0434\u0438\u043d\"],    If[MatchQ[number, 2],      Print[\"\u0434\u0432\u0430\"]   ] ]<\/code><\/pre>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e.. \u043f\u043e\u043a\u0430 \u043a\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 &#8212; \u044d\u0442\u043e \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0435\u043c\u043e, \u043d\u043e \u0443\u0436\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430? <\/p>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h2>Switch<\/h2>\n<p>\u0414\u0430, \u043e\u043d\u0430 \u0435\u0441\u0442\u044c \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 <em>\u043f\u043e\u0447\u0442\u0438<\/em> \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <code>match\/case<\/code> \u0438\u0437 Python. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439: <\/p>\n<pre><code class=\"haskell\">Switch[expr,    pattern1,      result1,    pattern2,      result2 ]<\/code><\/pre>\n<p>\u0422.\u0435. \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#8212; \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0434\u0430\u043b\u0435\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u0442\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#8212; \u044d\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e &#8212; \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e:<\/p>\n<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4c9\/11e\/8fe\/4c911e8fee15f9bc69a8aed600a72495.png\" alt=\"\u0412\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0432\u043e\u0434\u0430\" title=\"\u0412\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0432\u043e\u0434\u0430\" width=\"769\" height=\"365\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4c9\/11e\/8fe\/4c911e8fee15f9bc69a8aed600a72495.png\"\/><\/p>\n<div><figcaption>\u0412\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0432\u043e\u0434\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043c\u044b \u043f\u0440\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e WL! \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u043e \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041a \u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c, \u0432\u0435\u0434\u044c WL &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c \u0424\u041f \u043b\u044e\u0431\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442 &#8212; \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0432\u0435\u043d <code>Null<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u044f \u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0436\u0443, \u0430 \u043e\u043d \u0435\u0441\u0442\u044c.. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/216\/c1c\/86b\/216c1c86b852493336c9ea3d8080875c.png\" alt=\"\u0412\u0441\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0442\u0441\u044f, \u0430 Null - \u043d\u0435\u0442. \u041d\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 Null \u0432 \u0441\u043f\u0438\u0441\u043e\u043a\" title=\"\u0412\u0441\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0442\u0441\u044f, \u0430 Null - \u043d\u0435\u0442. \u041d\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 Null \u0432 \u0441\u043f\u0438\u0441\u043e\u043a\" width=\"868\" height=\"312\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/216\/c1c\/86b\/216c1c86b852493336c9ea3d8080875c.png\"\/><\/p>\n<div><figcaption>\u0412\u0441\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0442\u0441\u044f, \u0430 <code>Null<\/code> &#8212; \u043d\u0435\u0442. <br \/>\u041d\u043e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 <code>Null<\/code> \u0432 \u0441\u043f\u0438\u0441\u043e\u043a<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0e0\/6d8\/4d9\/0e06d84d9424fb46471a55c21b9d7dfc.png\" alt=\"\u0412\u043e\u0435\u043d\u043d\u043e\u0441\u043b\u0443\u0436\u0430\u0449\u0438\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u044e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 Null \u0432 Wolfram Language\" title=\"\u0412\u043e\u0435\u043d\u043d\u043e\u0441\u043b\u0443\u0436\u0430\u0449\u0438\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u044e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 Null \u0432 Wolfram Language\" width=\"1200\" height=\"675\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0e0\/6d8\/4d9\/0e06d84d9424fb46471a55c21b9d7dfc.png\"\/><\/p>\n<div><figcaption>\u0412\u043e\u0435\u043d\u043d\u043e\u0441\u043b\u0443\u0436\u0430\u0449\u0438\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u044e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 Null \u0432 Wolfram Language<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u0432\u0441\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u044f \u0447\u0442\u043e-\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u044e \u0432 \u043a\u043e\u0434\u0435 \u0432\u044b\u0448\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044f \u0437\u0430\u0434\u0430\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0443 <code>expr<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435&#8230; \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 <code>pattern2<\/code>!<\/p>\n<pre><code class=\"haskell\">expr = pattern2  Switch[expr,    pattern1, result1,    pattern2, result2 ]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e0c\/a1a\/0a2\/e0ca1a0a2125d5636c7bee83cfb45f9b.png\" alt=\"\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0438\u043c\u0432\u043e\u043b\u0443, \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0438 \u0441\u0438\u043c\u0432\u043e\u043b, \u0430 \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435! \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\" title=\"\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0438\u043c\u0432\u043e\u043b\u0443, \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0438 \u0441\u0438\u043c\u0432\u043e\u043b, \u0430 \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435! \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\" width=\"822\" height=\"416\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e0c\/a1a\/0a2\/e0ca1a0a2125d5636c7bee83cfb45f9b.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0441\u0438\u043c\u0432\u043e\u043b\u0443, \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b \u0438 \u0441\u0438\u043c\u0432\u043e\u043b, \u0430 \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435! <br \/>\u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b<\/figcaption><\/div>\n<\/figure>\n<p>\u0423 <code>Switch<\/code> \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a &#8212; \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f. \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u0442.\u0435. \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 <code>switch\/case<\/code> \u0438\u0437 C#, \u0447\u0435\u043c \u043d\u0430 <code>match\/case<\/code> \u0438\u0437 Python. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>Cases<\/code>. <\/p>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h2>Cases<\/h2>\n<p>\u0423 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441: <\/p>\n<pre><code class=\"haskell\">Cases[expr, pattern]<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u0443 \u043d\u0435\u0435 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043e\u043a, \u043d\u043e \u043e\u043d\u0438 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b. \u0427\u0442\u043e \u043e\u043d\u0430 \u0434\u0435\u043b\u0430\u0435\u0442? \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d\u0430 <em>&#171;\u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u0442&#187;<\/em> <strong>\u0438\u0437<\/strong> \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>expr<\/code> \u0442\u043e, \u0447\u0442\u043e \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 <code>pattern<\/code>. \u042f \u043d\u0435 \u0437\u0440\u044f \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u0436\u0438\u0440\u043d\u044b\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0433 &#171;\u0438\u0437&#187;, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e <code>Cases<\/code> \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0449\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 <em>\u0432\u043d\u0443\u0442\u0440\u0438<\/em> \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c. \u0417\u0432\u0443\u0447\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0442\u0430\u043c \u043e\u043d\u0430 \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f \u043b\u0443\u0447\u0448\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a \u044f \u043c\u043e\u0433\u0443 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0435\u0434\u0438\u043d\u0438\u0447\u043a\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>Cases<\/code>: <\/p>\n<pre><code class=\"haskell\">Cases[{1, 2, 3, 4, 1, 2, 3, 1, 2, 1}, 1] (* => {1, 1, 1, 1} *)<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u043b\u0430\u0441\u044c \u043f\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0443 \u0441\u043b\u0435\u0432\u0430, \u0432\u044b\u0437\u0432\u0430\u043b\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 <code>MatchQ[item, 1]<\/code> \u0438 \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u043e\u0441\u044c <code>True<\/code>, \u0442\u043e <em>&#171;\u0432\u044b\u0431\u0440\u0430\u043b\u0430&#187;<\/em> \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041d\u043e \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043f\u0440\u0438\u0447\u0435\u043c \u0442\u0443\u0442 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435? <\/p>\n<h4>Rule (\u2192), RuleDelayed (\u21a6)<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>Cases<\/code> \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 <em>&#171;\u043f\u0440\u0430\u0432\u0438\u043b\u043e&#187;<\/em> \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0441 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0432\u0430. \u042d\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u043a\u043e\u0434\u0430, \u0447\u0435\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u043c\u0438. <\/p>\n<pre><code class=\"haskell\">Cases[{expr1, expr2}, x_ -> x + 1] (* \u0438\u043b\u0438 *) Cases[{1, 2}, x_ :> x + 1]<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/adb\/9d1\/59c\/adb9d159cd75ca0cb788b7844b892428.png\" alt=\"\u0425\u043e\u0442\u044c \u043c\u044b \u0412\u0421\u0415 \u0415\u0429\u0415 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 x \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 x_ :> ..&#187; title=&#187;\u0425\u043e\u0442\u044c \u043c\u044b \u0412\u0421\u0415 \u0415\u0429\u0415 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 x \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 x_ :> ..&#187; width=&#187;833&#8243; height=&#187;424&#8243; data-src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/adb\/9d1\/59c\/adb9d159cd75ca0cb788b7844b892428.png&#187;\/><\/p>\n<div><figcaption>\u0425\u043e\u0442\u044c \u043c\u044b \u0412\u0421\u0415 \u0415\u0429\u0415 \u043d\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043d\u043e \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u0435\u043d. <br \/>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x<\/code> \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u0437 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 <code>x_ :> ..<\/code><\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0432\u044b\u0448\u0435 &#8212; \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0448\u0443 \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440: <em>&#171;\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 <\/em><code>{expr1, expr2}<\/code><em> \u0441\u043b\u0435\u0432\u0430 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0443 <\/em><code>x_<\/code><em> \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 \u0432\u044b\u0431\u043e\u0440\u0430 \u0447\u0438\u0441\u043b\u043e <\/em><code>1<\/code><em> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430&#187;<\/em>.<\/p>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <code>RuleDelayed<\/code> (<code>:><\/code>) \u0440\u0430\u0434\u0438 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. \u0418 \u0442\u043e\u0442 \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0441 \u043e\u0434\u043d\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439. <code>Rule<\/code> &#8212; \u043d\u0435 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u0430 <code>RuleDelayed<\/code> &#8212; \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442. \u041f\u0440\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445, \u043d\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e, \u0442\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u0430\u043a\u0430\u044f: <\/p>\n<pre><code class=\"haskell\">1 + 1 -> 2 + 2 1 + 1 :> 2 + 2<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fbd\/91e\/1d2\/fbd91e1d238f739850718e14109b85eb.png\" alt=\"2+2 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435 \u0432\u044b \u0447\u0438\u0441\u043b\u0438\u043b\u043e\u0441\u044c\" title=\"2+2 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435 \u0432\u044b \u0447\u0438\u0441\u043b\u0438\u043b\u043e\u0441\u044c\" width=\"848\" height=\"349\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fbd\/91e\/1d2\/fbd91e1d238f739850718e14109b85eb.png\"\/><\/p>\n<div><figcaption><code>2+2<\/code> \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0435 \u0432\u044b \u0447\u0438\u0441\u043b\u0438\u043b\u043e\u0441\u044c<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"8\" id=\"8\"><\/a><\/p>\n<h2>Replace* (\/., \/\/.)<\/h2>\n<p>\u0418 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>Replace<\/code>. \u0423 \u043d\u0435\u0435 \u0435\u0441\u0442\u044c \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>ReplaceAll<\/code> \u0438 <code>ReplaceRepeated<\/code>. \u0427\u0442\u043e \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u0435\u043b\u0430\u044e\u0442? \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0437\u0430\u043c\u0435\u043d\u0443. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: <\/p>\n<pre><code class=\"haskell\">x \/. x -> y (* \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f ReplaceAll[x, x -> y] *)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a5c\/6bf\/4fe\/a5c6bf4fe7464b0c62983514dce17d27.png\" alt=\"\u041e\u043f\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043a\u043e\u0434. \u042f \u0432\u0435\u0434\u044c \u043c\u043e\u0433 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c y \u0438 \u0432\u0441\u0435\" title=\"\u041e\u043f\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043a\u043e\u0434. \u042f \u0432\u0435\u0434\u044c \u043c\u043e\u0433 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c y \u0438 \u0432\u0441\u0435\" width=\"840\" height=\"435\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a5c\/6bf\/4fe\/a5c6bf4fe7464b0c62983514dce17d27.png\"\/><\/p>\n<div><figcaption>\u041e\u043f\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u043a\u043e\u0434. \u042f \u0432\u0435\u0434\u044c \u043c\u043e\u0433 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <code>y<\/code> \u0438 \u0432\u0441\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0448\u0435: <em>\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0441\u043b\u0435\u0432\u0430 \u0432\u0441\u0435, \u0447\u0442\u043e \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430<\/em>. \u0417\u0430\u043c\u0435\u043d\u0430 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">expr = Sin[1\/x] + Cos[x^2]  expr \/. x -> (x + Pi)  expr \/. x -> 4.2<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4c9\/212\/f31\/4c9212f31477c19a6a964e5a8376f73d.png\" alt=\"Sin \u0438 Cos \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c Pi\u0438 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0430\u043c \u0433\u0434\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b - \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435\" title=\"Sin \u0438 Cos \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c Pi\u0438 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0430\u043c \u0433\u0434\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b - \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435\" width=\"877\" height=\"451\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4c9\/212\/f31\/4c9212f31477c19a6a964e5a8376f73d.png\"\/><\/p>\n<div><figcaption>Sin \u0438 Cos \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c Pi<br \/>\u0438 \u043d\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, <br \/>\u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0430\u043c \u0433\u0434\u0435 \u044d\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b &#8212; \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0440\u043e\u043c\u0435 \u043f\u0440\u044f\u043c\u043e\u0439 \u0437\u0430\u043c\u0435\u043d\u044b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0430\u0437 \u0434\u0430\u043b\u044c\u0448\u0435. <\/p>\n<p><a class=\"anchor\" name=\"9\" id=\"9\"><\/a><\/p>\n<h2>Set, SetDelayed, UpSet, UpSetDelayed, TagSet, TagSetDelayed<\/h2>\n<p>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f. \u0414\u0430, \u044d\u0442\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u043e \u0432\u0441\u0435\u0445 \u0435\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0445. \u0412\u0441\u0435 6 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0438 \u043b\u0438\u0447\u043d\u043e \u044f \u0438\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e. \u041d\u043e \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e &#8212; \u044d\u0442\u043e <code>SetDelayed<\/code>. \u0415\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u044d\u0442\u043e <code>:=<\/code>. \u0410 \u043f\u0440\u0438\u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u044f\u0437\u044b\u043a Wolfram \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b, \u0442.\u0435. \u0438\u043c\u044f  \u0444\u0443\u043d\u043a\u0446\u0438\u0438 + \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. WL <em>\u0432\u0441\u0435\u0433\u0434\u0430<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u044b. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u044f (<code>SetDelayed<\/code> \u0438\u043b\u0438 <code>:=<\/code>) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">f[x_] := x + 1<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0438\u0447\u0442\u043e \u0438\u043d\u043e\u0435 \u043a\u0430\u043a \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Wolfram, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432 \u0447\u0443\u0442\u044c <em>\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435<\/em> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">SetDelayed[f[x_], x + 1]<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 \u0432\u0442\u043e\u0440\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0441 \u044d\u0442\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c. \u0427\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d <code>x_<\/code> \u043c\u044b \u0435\u0449\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u043c \u043d\u0438\u0436\u0435, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 6 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u043e\u0436\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u044f\u0434\u0440\u043e? \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u044f\u0437\u044b\u043a\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432 \u0442\u043e\u043c \u0436\u0435 \u0432\u0438\u0434\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0435\u0433\u043e \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043b\u0438: \u043b\u0435\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 \u043f\u0440\u0430\u0432\u0430\u044f &#8212; \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u0432 \u044f\u0434\u0440\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>f[1]<\/code>, \u0442\u043e \u043e\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430 f, \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>MatchQ<\/code> \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f <code>MatchQ[f[1], f[x_]] === True<\/code>. \u041d\u0443 \u0438 \u0437\u0430\u0442\u0435\u043c \u044f\u0434\u0440\u043e \u0431\u0435\u0440\u0435\u0442 \u043f\u0440\u0430\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0447\u043a\u0443 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e <code>x<\/code>. <\/p>\n<p>\u0412\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u0448\u0435 \u0438 \u0435\u0441\u0442\u044c \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u043f\u043e\u0432\u0441\u0435\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432 WL. \u0412\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u044f\u0434\u0440\u0435 \u043d\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430\u043c\u0438. \u0415\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0438\u0441\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043b\u044e\u0431\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 &#8212; \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0430. \u0410 \u043a\u0430\u043a \u0436\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435? \u041e\u043d\u0438 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443? \u041e\u0442\u0432\u0435\u0442 &#8212; \u043d\u0435\u0442. \u041f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 &#8212; \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0432 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u0422\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043f\u0440\u043e\u0449\u0435. <\/p>\n<p><a class=\"anchor\" name=\"10\" id=\"10\"><\/a><\/p>\n<h2>\u0428\u0430\u0431\u043b\u043e\u043d\u044b<\/h2>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u0430 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043a \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0430\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u044b? \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043c\u043e\u0433\u0443 \u0434\u043e\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 Python \u0438\u043b\u0438 \u0432 C# \u0448\u0430\u0431\u043b\u043e\u043d\u044b &#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0430\u0445\u0430\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\/\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432 \u0431\u043e\u043b\u0435\u0435 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b. \u0412 Python \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0438 \u043f\u0440\u043e C#. \u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432, \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram \u0448\u0430\u0431\u043b\u043e\u043d\u044b &#8212; \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043e\u043d\u0438 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0432\u0441\u0435\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u044f\u0441\u044c \u043a \u0442\u043e\u043c\u0443 \u043c\u0435\u0441\u0442\u0443, <em>\u0433\u0434\u0435<\/em> \u044f \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u044e. <em>Wildcard<\/em> \u0432 Python \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 <code>match\/case<\/code>, \u0430 \u0430\u043d\u0430\u043b\u043e\u0433 \u0432 WL \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0437\u0434\u0435. \u042d\u0442\u043e \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0438 \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0435\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432 WL \u043e\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0430 \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0433\u0434\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438, \u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432. \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0438\u0445 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044e. <\/p>\n<p><a class=\"anchor\" name=\"11\" id=\"11\"><\/a><\/p>\n<h2>\u0422\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041e\u043d\u043e \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0438 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u041d\u043e \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u0435\u0449\u0435 \u0440\u0430\u0437: <\/p>\n<pre><code class=\"haskell\">MatchQ[1, 1] === True<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u044f \u0443\u0431\u0435\u0434\u0438\u043b\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e <code>1 == 1<\/code>. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">MatchQ[   f[g[x, y], z],    f[g[x, y], z] ] (* => True *)<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0430\u0436\u0435\u043d \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439. \u0412 WL \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>Equals<\/code> (<code>==<\/code>) \u0438 <code>SameQ<\/code> (<code>===<\/code>). \u041e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u041f\u0435\u0440\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u0442\u044c <em>\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c<\/em>, \u0430 \u0432\u0442\u043e\u0440\u0443\u044e &#8212; <em>\u0442\u043e\u0447\u043d\u044b\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c<\/em>. \u0412\u043e\u043f\u0440\u043e\u0441 &#8212; \u043a\u0430\u043a\u0430\u044f \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0435\u0441\u043b\u0438 \u043c\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f? \u041f\u043e\u043d\u044f\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044f: <\/p>\n<pre><code class=\"haskell\">{1 == 1, 1 === 1, MatchQ[1, 1]}  {1.0 == 1, 1.0 === 1, MatchQ[1.0, 1]}  {a == b, a === b, MatchQ[a, b]}<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b88\/b6d\/468\/b88b6d4681f0ee9bf213679c48c0aa21.png\" alt=\"\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u0438\u0442\u044c \u043a\u043e\u0434 - \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b \u0442\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0438\" title=\"\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u0438\u0442\u044c \u043a\u043e\u0434 - \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b \u0442\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0438\" width=\"815\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b88\/b6d\/468\/b88b6d4681f0ee9bf213679c48c0aa21.png\"\/><\/p>\n<div><figcaption>\u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u0438\u0442\u044c \u043a\u043e\u0434 &#8212; \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b \u0442\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u044b\u0448\u0435 &#8212; <code>MatchQ<\/code> \u043f\u0440\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0441 \u0442\u043e\u0447\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u0442\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 <code>SameQ<\/code>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0440\u0430\u0437\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435 \u043d\u0443\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u044b\u043c \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 <code>MatchQ<\/code>. \u0425\u043e\u0442\u044c \u043c\u044b \u0438 \u0437\u043d\u0430\u0435\u043c, \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0443\u043c\u043c\u0430 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430\u044f \u0438 \u043d\u0435\u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0432\u043d\u044b: <\/p>\n<pre><code class=\"haskell\">MatchQ[(a + b)^2, a^2 + 2*a*b + b^2]  (a + b)^2 == a^2 + 2*a*b + b^2  FullSimplify[(a + b)^2 == a^2 + 2*a*b + b^2]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0df\/073\/c9b\/0df073c9bbcc769585207feed96c7479.png\" alt=\"\u0415\u0441\u043b\u0438 Equals \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\" title=\"\u0415\u0441\u043b\u0438 Equals \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\" width=\"786\" height=\"460\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0df\/073\/c9b\/0df073c9bbcc769585207feed96c7479.png\"\/><\/p>\n<div><figcaption>\u0415\u0441\u043b\u0438 <code>Equals<\/code> \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0432\u044b\u0448\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0431\u044b\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 <code>Set*<\/code>.  \u0410 \u0437\u0434\u0435\u0441\u044c \u044f \u0433\u043e\u0432\u043e\u0440\u044e, \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u0442\u043e\u0436\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u042d\u0442\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439? \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0434\u0430! \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0442\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u0434\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443 \u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u043e\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044f \u0445\u043e\u0447\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u041d\u0430 \u0432\u0441\u0435\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u043e\u043d\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0430\u043c\u0430 \u0441\u0435\u0431\u044f: <\/p>\n<pre><code class=\"haskell\">fib[n_] := fib[n - 1] + fib[n - 2]<\/code><\/pre>\n<p>\u0412\u044b\u0437\u043e\u0432\u0435\u043c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e: <\/p>\n<pre><code class=\"haskell\">fib[4] (* => recursion limit *)<\/code><\/pre>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0430\u043c \u0447\u0435\u0433\u043e-\u0442\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438. \u041d\u0443\u0436\u043d\u043e \u0443\u0447\u0435\u0441\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>n == 0<\/code> \u0438\u043b\u0438 <code>n == 1<\/code>, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u0440\u0443\u0433\u043e\u043c (Python) \u044f \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"python\">def fib(n: int) -> int:      if n == 0:          return 0     if n == 1:          return 1     return fib(n - 1) + fib(n - 2)  fib(10)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/318\/651\/ed5\/318651ed5bec80248c805c6c2fe00be6.png\" alt=\"\u041a\u0441\u0442\u0430\u0442\u0438 WL \u0432 Jupyter \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f\" title=\"\u041a\u0441\u0442\u0430\u0442\u0438 WL \u0432 Jupyter \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f\" width=\"738\" height=\"277\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/318\/651\/ed5\/318651ed5bec80248c805c6c2fe00be6.png\"\/><\/p>\n<div><figcaption>\u041a\u0441\u0442\u0430\u0442\u0438 WL \u0432 Jupyter \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043d\u0430 WL: <\/p>\n<pre><code class=\"haskell\">fib[n_] :=  Switch[n,    0, 0,    1, 1,    _, fib[n - 1] + fib[n - 1] ]  fib[10]<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u042f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">fib[0]  := 0 fib[1]  := 1 fib[n_] := fib[n - 1] + fib[n - 2]  fib[10]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/43e\/17c\/e42\/43e17ce42dc7cd9839a2937e4744b4ff.png\" alt=\"\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e fib\" title=\"\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e fib\" width=\"865\" height=\"451\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/43e\/17c\/e42\/43e17ce42dc7cd9839a2937e4744b4ff.png\"\/><\/p>\n<div><figcaption>\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>fib<\/code><\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 WL \u043e\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <em>\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440 => \u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d => \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043d\u0430 \u0442\u043e\u0447\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445<\/em>. \u0412 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 WL \u0447\u0435\u043c-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 JavaScript. \u041b\u044e\u0431\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432 JS &#8212; \u044d\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043d\u0430 \u0445\u043e\u0434\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 JS \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f, \u0430 \u0432 WL \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b. <\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u044f \u0438 \u043c\u043e\u0438 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 &#8212; \u044d\u0442\u043e \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e \u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435: <\/p>\n<pre><code class=\"haskell\">SetAttributes[Cache, HoldFirst];    Cache[expr_, period_Integer: 60] :=  Module[{roundNow = Floor[AbsoluteTime[], period]},  If[IntegerQ[Cache[expr, \"Date\"]] &amp;&amp; Cache[expr, \"Date\"] == roundNow,  Cache[expr, \"Value\"],  (*Else*) Cache[expr, \"Date\"] = roundNow;  Cache[expr, \"Value\"] = expr ] ]; <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ea\/572\/2d2\/9ea5722d27479413c4b7daf89c0d520e.png\" alt=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442.\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0438\u0437 VS Code \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. \" title=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442.\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0438\u0437 VS Code \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. \" width=\"639\" height=\"249\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ea\/572\/2d2\/9ea5722d27479413c4b7daf89c0d520e.png\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442.<br \/>\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0438\u0437 VS Code \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f. <\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\/\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b, \u043d\u043e \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0438\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e. \u0412\u0435\u0434\u044c \u0432 \u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 <em>\u0434\u043e\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/em> \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0445\u043e\u0434\u0443. <\/p>\n<p><a class=\"anchor\" name=\"12\" id=\"12\"><\/a><\/p>\n<h2>\u0428\u0430\u0431\u043b\u043e\u043d &#171;\u0432\u0441\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e&#187; (_)<\/h2>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 <em>&#171;\u0432\u0441\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e&#187;<\/em>, \u0442.\u0435. \u044d\u0442\u043e wildcard \u0434\u043b\u044f WL. \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u043d \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 &#8212; \u0432 \u0432\u0438\u0434\u0435 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0432\u044b\u0448\u0435, \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 \u043b\u044e\u0431\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c: <\/p>\n<pre><code class=\"haskell\">MatchQ[1, _]               (* => True *) MatchQ[{1.0, 1\/2, 3*I}, _] (* => True *) MatchQ[\"string\", _]        (* => True *) MatchQ[name, _]            (* => True *) MatchQ[f[g[x, y]], _]      (* => True *)<\/code><\/pre>\n<p>\u0410 \u0435\u0449\u0435 \u044f \u043c\u043e\u0433\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435: <\/p>\n<pre><code class=\"haskell\">x = 1.0  Switch[x,    1,      Print[\"\u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e\"],    _,      Print[\"\u043d\u0435 \u0446\u0435\u043b\u043e\u0435\"] ]  Cases[f[1, 2.0, -3\/4, 5*I], _ :> x]  g[1, 2, 3] \/. _ :> x<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/356\/025\/393\/3560253931427b5af42f13ffc5a45861.png\" alt=\"\u0415\u0449\u0435 \u0440\u0430\u0437 \u0445\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 f \u0438 g\" title=\"\u0415\u0449\u0435 \u0440\u0430\u0437 \u0445\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 f \u0438 g\" width=\"800\" height=\"472\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/356\/025\/393\/3560253931427b5af42f13ffc5a45861.png\"\/><\/p>\n<div><figcaption>\u0415\u0449\u0435 \u0440\u0430\u0437 \u0445\u043e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 <code>f<\/code> \u0438 <code>g<\/code><\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u0435\u043d. \u0418\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u044f \u043e\u0436\u0438\u0434\u0430\u043b, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>g[..]<\/code>, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <code>g[..]<\/code> \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0412\u0435\u0434\u044c \u043e\u043d\u043e \u0432\u0441\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 <code>_<\/code>. <\/p>\n<p>\u0418 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 &#8212; \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0422\u043e\u043b\u044c\u043a\u043e \u0431\u0435\u0437 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c, \u043d\u043e \u043b\u0438\u0447\u043d\u043e \u044f \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431. \u0415\u0441\u043b\u0438 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u0445, \u0442\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">validVersionQ::argex = \"incorrect arguments\"  validVersionQ[\"13.3\"] = True validVersionQ[\"13.2\"] = True validVersionQ[\"13.1\"] = False  validVersionQ[_] = (Message[validVersionQ::argex]; Null)<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0434\u043b\u044f \u0442\u0440\u0435\u0445 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a, \u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <code>\"incorrect arguments\"<\/code> \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>Null<\/code>.<\/p>\n<p><a class=\"anchor\" name=\"13\" id=\"13\"><\/a><\/p>\n<h2>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u041e\u043f\u044f\u0442\u044c \u0436\u0435 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u0436\u0435 \u0431\u044b\u043b, \u043d\u043e \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0435\u0449\u0435 \u0440\u0430\u0437. \u041f\u0435\u0440\u0435\u0434 <em>wildcard<\/em> \u044f \u043c\u043e\u0433\u0443 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438 \u0442\u043e\u0433\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0441\u0432\u044f\u0436\u0435\u0442 \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438. \u041b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>Cases<\/code>:<\/p>\n<pre><code class=\"haskell\">users = {   &lt;|\"Name\" -> \"Kirill\", \"Role\" -> \"QA\"|>,    &lt;|\"Name\" -> \"Ivan\", \"Role\" -> \"Student\"|> }  Cases[users, &lt;|\"Name\" -> name_, \"Role\" -> \"Student\"|> :> name]<\/code><\/pre>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/894\/139\/cd7\/894139cd70a72bd5a571bed256f8447d.png\" alt=\"&lt;|&quot;x&quot;->1|> &#8212; \u044d\u0442\u043e \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f. \u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 {&#8216;x&#8217;:1} \u0438\u0437 Python&#187; title=&#187;&lt;|&quot;x&quot;->1|> &#8212; \u044d\u0442\u043e \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f. \u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 {&#8216;x&#8217;:1} \u0438\u0437 Python&#187; width=&#187;800&#8243; height=&#187;462&#8243; data-src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/894\/139\/cd7\/894139cd70a72bd5a571bed256f8447d.png&#187;\/><\/p>\n<div><figcaption><code>&lt;|\"x\"->1|><\/code> &#8212; \u044d\u0442\u043e \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f. <br \/>\u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 <code>{'x':1}<\/code> \u0438\u0437 Python<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0430 &#171;\u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u0442&#187; \u0438\u0437 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u0431\u0440\u0430\u0437\u0446\u0443. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 <code>name_<\/code> \u0431\u044b\u043b\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0441\u043b\u0438 \u043e\u043d \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u043c. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043f\u0440\u0430\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u0442.\u0435. \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u043b\u044e\u0431\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0410 \u0435\u0449\u0435 \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438: <\/p>\n<pre><code class=\"haskell\">Cases[users, &lt;|key_ -> name_, \"Role\" -> \"Student\"|> :> f[key, name]]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/648\/d0b\/66f\/648d0b66fb103bf3f19801ed74280abf.png\" alt=\"\u0418 \u0441\u043d\u043e\u0432\u0430 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e!\" title=\"\u0418 \u0441\u043d\u043e\u0432\u0430 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e!\" width=\"800\" height=\"478\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/648\/d0b\/66f\/648d0b66fb103bf3f19801ed74280abf.png\"\/><\/p>\n<div><figcaption>\u0418 \u0441\u043d\u043e\u0432\u0430 \u043c\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e!<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c\u0441\u044f \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u0440\u0430\u0437 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0438, \u0433\u0434\u0435 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0434\u0432\u0443\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u0445. \u0410 \u043d\u0430\u043c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e: <\/p>\n<pre><code class=\"haskell\">points = RandomInteger[10, {3, 2}]  forces = Flatten[Table[gforce[p1, p2], {p1, points}, {p2, points}]]  forces \/. gforce[p_, p_] :> Nothing<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ba\/2bf\/f0b\/7ba2bff0b4ada58458c6c13a0610cf43.png\" alt=\"\u0422\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u0443 \u0441\u0435\u0431\u044f\" title=\"\u0422\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u0443 \u0441\u0435\u0431\u044f\" width=\"808\" height=\"491\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ba\/2bf\/f0b\/7ba2bff0b4ada58458c6c13a0610cf43.png\"\/><\/p>\n<div><figcaption>\u0422\u0430\u043a \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0441\u0430\u043c\u0443 \u0441\u0435\u0431\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u0433\u0435\u0442\u0442\u0435\u0440 \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a \u0438 \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u043b\u044e\u0447\u043e\u043c <code>\"Address\"<\/code>. \u0418 \u044f \u0445\u043e\u0447\u0443 \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0443\u043b\u0438\u0446\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0441\u043c\u044b\u0441\u043b\u0443) \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432\u0445\u043e\u0434\u0438\u0442 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441: <\/p>\n<pre><code class=\"haskell\">home = &lt;|\"Type\" -> \"Building\", \"Address\" -> &lt;|      \"City\" -> \"Saratov\",       \"Street\" -> \"Tankistov\" |>|>;   me = &lt;|\"Name\" -> \"Kirill\", \"Address\" -> &lt;|      \"City\" -> \"Saratov\",       \"Street\" -> \"Ogorodnaya\" |>|>;   Cases[{home, me}, &lt;|_, \"Address\" -> &lt;|_, \"Street\" -> street_|>|> :> street]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4f5\/f2b\/8e9\/4f5f2b8e9ab99fc8de3d5c52c6c48a0a.png\" alt=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u0436\u0438\u0432\u0443 \u0432 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0435\" title=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u0436\u0438\u0432\u0443 \u0432 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0435\" width=\"831\" height=\"472\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f5\/f2b\/8e9\/4f5f2b8e9ab99fc8de3d5c52c6c48a0a.png\"\/><\/p>\n<div><figcaption>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u0436\u0438\u0432\u0443 \u0432 \u042d\u043d\u0433\u0435\u043b\u044c\u0441\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u0434\u0430, \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <code>x_<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0415\u0433\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u043a <code>x: _<\/code>  (\u0445\u043e\u0442\u044f \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0430\u043c\u0430\u044f \u043f\u043e\u043b\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u044d\u0442\u043e <code>Pattern[x, Blank[]]<\/code>). \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435\u043c, \u044f \u043c\u043e\u0433\u0443 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u043b\u044e\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u043d\u043e \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u043f\u0438\u0441\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0442\u0440\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445: <\/p>\n<pre><code class=\"haskell\">Cases[{{1}, {1, 2}, {1, 2, 3}, {3, 2, 1}, {3, 2}, {2}},    x: {_, _, _} :> Total[x] ]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e22\/76d\/e38\/e2276de38aaf74dee5e9d5fbcbaef8e7.png\" alt=\"Total \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0430\" title=\"Total \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0430\" width=\"811\" height=\"453\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e22\/76d\/e38\/e2276de38aaf74dee5e9d5fbcbaef8e7.png\"\/><\/p>\n<div><figcaption><code>Total<\/code> \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0430<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"14\" id=\"14\"><\/a><\/p>\n<h2>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/h2>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0432\u044b\u0448\u0435 \u0441\u043f\u043e\u0441\u043e\u0431 \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 wildcard, \u0432 WL \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u043e\u0440\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043a\u0430\u043a \u0440\u0430\u0437 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0444\u043e\u0440\u043c\u0430 &#8212; \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0434\u043b\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0432 \u0447\u0430\u0441\u0442\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0442\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430\u0437\u0430\u0434, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e 6 \u0442\u0438\u043f\u043e\u0432 \u0430\u0442\u043e\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u044f\u0437\u044b\u043a\u0435. \u041a\u043e\u0433\u0434\u0430 \u044f \u0438\u0445 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u043b &#8212; \u044f \u0443\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0439 \u0442\u0438\u043f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f &#8212; <code>Integer<\/code>, \u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 &#8212; <code>Real<\/code>. \u0422\u0430\u043a \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u0442\u0438\u043f \u0438 \u0435\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0434\u043b\u044f \u0446\u0435\u043b\u044b\u0445 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b. \u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u043d\u0430\u0437\u044b\u0432\u0430\u044e \u044d\u0442\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a? \u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c, \u0442\u043e \u0432\u0441\u0435 \u0432 Wolfram \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0442\u043e\u043c\u043e\u043c \u0438\u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c. \u0412\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439 &#8212; \u0433\u043e\u043b\u043e\u0432\u044b \u0438 \u0442\u0435\u043b\u0430. \u041f\u043e \u0441\u0443\u0442\u0438 \u0433\u043e\u043b\u043e\u0432\u0430 \u0438\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a &#8212; \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0438\u0434\u0435\u0442 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0435\u0434 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438, \u0430 \u0442\u0435\u043b\u043e &#8212; \u0442\u043e \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a. \u041f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>Head<\/code>. \u041e\u043f\u044f\u0442\u044c \u0436\u0435 \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0435\u0440\u043c\u0438\u043d <em>&#171;\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a&#187;<\/em>: <\/p>\n<pre><code class=\"haskell\">Head[1] (* => Integer *) Head[2.0] (* => Real *) Head[1\/3] (* => Rational *) Head[4.0 + I] (* => Complex *) Head[\"string\"] (* => String *) Head[x] (* => Symbol *)<\/code><\/pre>\n<p>\u0418 \u0447\u0442\u043e \u0436\u0435 \u043d\u0430\u043c \u044d\u0442\u043e \u0434\u0430\u0435\u0442? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c. \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u0438\u043f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435. \u0422.\u0435. \u043f\u0440\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0443\u043a\u0430\u0437\u0430\u0432 \u0442\u0438\u043f \u0432\u043e\u0442 \u0442\u0430\u043a <code>_Type<\/code>: <\/p>\n<pre><code class=\"haskell\">MatchQ[1, _Integer]     (* => True *) MatchQ[1\/3, _Rational]  (* => True *) MatchQ[1.23, _Real]     (* => True *) MatchQ[I, _Complex]     (* => True *) MatchQ[\"s\", _String]    (* => True *) MatchQ[x, _Symbol]      (* => True *)<\/code><\/pre>\n<p>\u0412\u044b\u0448\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u043f\u0438\u0441\u043a\u0438 {} \u0438 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438 &lt;||>, \u043a\u0430\u043a\u0438\u0435 \u0436\u0435 \u0442\u0438\u043f\u044b \u0443 \u043d\u0438\u0445?<\/p>\n<pre><code class=\"haskell\">Head[{}]   (* => List *) Head[&lt;||>] (* => Association *)<\/code><\/pre>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">MatchQ[&lt;||>, _List]        (* => True *) MatchQ[&lt;||>, _Association] (* => True *)<\/code><\/pre>\n<p>\u0410 \u0435\u0449\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0443\u0441\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0439. \u042f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 JSON-\u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u0441\u043f\u0438\u0441\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 JSON-\u043c\u0430\u0441\u0441\u0438\u0432. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 JSON: <\/p>\n<pre><code class=\"haskell\">expr = jsonObj[   jsonNode[\"key1\", \"value1\"],    jsonNode[\"key2\", 2],    jsonNode[\"arr1\", jsonArr[1, 2, 3, 4]] ]<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u043c\u0435\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0438: <\/p>\n<pre><code class=\"haskell\">toJSONRules = {   jsonNode[k_String, v_String] :> k &lt;> \": \" &lt;> v,    jsonNode[k_String, v_Integer] :> k &lt;> \": \" &lt;> ToString[v],    jsonArr[v__] :> \"[\" &lt;> StringRiffle[Map[ToString, {v}], \", \"] &lt;> \"]\",    jsonObj[s__String] :> \"{\" &lt;> StringRiffle[{s}, \", \"] &lt;> \"}\" }; <\/code><\/pre>\n<p>\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432\u044b\u0448\u0435? \u041e\u043d\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0432\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u043a\u0432\u043e\u0437\u044c \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u0433\u0434\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043c\u0435\u043d\u0430. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439, \u0442\u043e \u043e\u043d\u043e \u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0438\u0434 &#8212; json-\u0441\u0442\u0440\u043e\u043a\u0443. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0442\u0440\u0438 \u0440\u0430\u0437\u0430: <\/p>\n<pre><code class=\"haskell\">expr \/. toJSONRules  expr \/. toJSONRules \/. toJSONRules  expr \/. toJSONRules \/. toJSONRules \/. toJSONRules<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/154\/ace\/b47\/154aceb4790ea088af95342e193ab5cd.png\" alt=\"\u0414\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 __???\" title=\"\u0414\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 __???\" width=\"946\" height=\"696\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/154\/ace\/b47\/154aceb4790ea088af95342e193ab5cd.png\"\/><\/p>\n<div><figcaption>\u0414\u0430 \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 <code>__<\/code>???<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e \u044f \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e <code>jsonNode[k, v]<\/code> &#8212; \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0442\u0438\u043f &#8212; <code>jsonNode<\/code>. \u0422\u043e\u0433\u0434\u0430 \u044f \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443: <\/p>\n<pre><code class=\"haskell\">jsonToString = Function[node,   Switch[node,     _String,        node,           _Integer,        ToString[node],           _jsonArr,        \"[\" &lt;> StringRiffle[Map[jsonNodeToString] @ Apply[List] @ node, \", \"] &lt;> \"]\",       _jsonNode,        node[[1]] &lt;> \": \" &lt;> jsonNodeToString[node[[2]]],       _jsonObj,        \"{\" &lt;> StringRiffle[Map[jsonNodeToString] @ Apply[List] @ node, \", \"] &lt;> \"}\"   ] ]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a8\/440\/334\/0a8440334a47f0b6a061e716fe5d1341.png\" alt=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442 _String \u0438\u043b\u0438 _Integer\" title=\"\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442 _String \u0438\u043b\u0438 _Integer\" width=\"952\" height=\"579\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a8\/440\/334\/0a8440334a47f0b6a061e716fe5d1341.png\"\/><\/p>\n<div><figcaption>\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442 <code>_String<\/code> \u0438\u043b\u0438 <code>_Integer<\/code><\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"15\" id=\"15\"><\/a><\/p>\n<h2>\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (__, ___)<\/h2>\n<p>\u0412 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0430\u043c \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c. \u041d\u043e \u0447\u0442\u043e \u043e\u043d\u043e \u0437\u043d\u0430\u0447\u0438\u0442? \u0412\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e &#8212; \u044d\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e &#171;\u0447\u0442\u043e-\u0443\u0433\u043e\u0434\u043d\u043e&#187; \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 &#171;\u0447\u0435\u0433\u043e-\u0443\u0433\u043e\u0434\u043d\u043e&#187; \u0434\u043b\u0438\u043d\u043e\u0439 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438. \u0422\u043e \u0435\u0441\u0442\u044c: <\/p>\n<pre><code class=\"haskell\">MatchQ[{1}, {__}] (* => True *) MatchQ[{1, 2}, {__}] (* => True *) MatchQ[{1, 2, 3}, {__}] (* => True *)<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 <code>*_<\/code> \u0432 Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0442\u043e\u0447\u043d\u043e. \u0421 \u044d\u0442\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a, \u0433\u0434\u0435 \u043f\u043e\u0434\u0440\u044f\u0434 \u0438\u0434\u0443\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u044f \u043d\u0435 \u0437\u043d\u0430\u044e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0445. \u0412\u043e\u0442 \u0442\u0430\u043a \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438: <\/p>\n<pre><code class=\"haskell\">{1, 2, 3, 3.0, 2.0, 1.0} \/. {   ints__Integer :> {ints},    rels__Real :> {rels} }  (* Out[] = {{1, 2, 3}, {3.0, 2.0, 1.0}} *)<\/code><\/pre>\n<p>\u0412 Python \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <code>*_<\/code> \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e wildcard. \u041d\u043e \u0432 WL \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u043e\u0439\u043d\u043e\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0430\u0437. \u041d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/p>\n<pre><code class=\"haskell\">Cases[{     {1, 2, 3},      {1, 2, 3, 4}   },    {first__, rest__} :> &lt;|\"first\" -> {first}, \"rest\" -> {rest}|> ]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f7\/eae\/95d\/2f7eae95da89a66aa0ef10c2087d7d24.png\" alt=\"WL \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\" title=\"WL \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f\" width=\"844\" height=\"394\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2f7\/eae\/95d\/2f7eae95da89a66aa0ef10c2087d7d24.png\"\/><\/p>\n<div><figcaption>WL \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0445\u043e\u0434\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u043a\u0432\u043e\u0437\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>first = 1<\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>rest = 2, 3<\/code>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u0434\u0440\u044f\u0434. <\/p>\n<p>\u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0433\u0434\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043f\u043e\u0434\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 &#8212; \u044d\u0442\u043e \u0442\u0440\u043e\u0439\u043d\u043e\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435 <code>___<\/code>. <\/p>\n<pre><code class=\"haskell\">MatchQ[{}, {___}]           (* => True *) MatchQ[{1}, {___}]          (* => True *) MatchQ[{1, 2, 3, 4}, {___}] (* => True *)<\/code><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0437\u043d\u0435\u0441 \u043b\u043e\u0433\u0438\u043a\u043e\u0439. <\/p>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u044f \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u044e \u0441\u0430\u043c \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0433\u0435\u0440\u043e\u0438\u0447\u0435\u0441\u043a\u0438 \u0435\u0435 \u0440\u0435\u0448\u0443. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a. \u042f \u0445\u043e\u0447\u0443 \u043d\u0430\u0439\u0442\u0438 \u0432 \u044d\u0442\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u0441\u0435 \u0442\u0440\u043e\u0439\u043a\u0438 <s>\u0438\u0433\u0440\u043e\u043a\u043e\u0432<\/s> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0433\u0434\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u0440\u0430\u0432\u043d\u044b, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &#8212; \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439. \u041f\u0443\u0441\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a: <\/p>\n<pre><code class=\"haskell\">array = {1, 2, 1, 4, 5, 6, 7, 8, 7, 4, 2, 1, 3}; <\/code><\/pre>\n<p>\u041c\u043e\u044f \u0446\u0435\u043b\u044c &#8212; \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438: <\/p>\n<pre><code class=\"haskell\">{1, 2, 1} {7, 8, 7}<\/code><\/pre>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c Cases, \u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d: <\/p>\n<pre><code class=\"haskell\">Cases[{array}, {___, x_, y_, x_, ___} :> {x, y, x}]<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0442\u0440\u043e\u0439\u043d\u043e\u0435 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0435 \u0437\u043d\u0430\u044e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435, \u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 <code>x_, y_, x_<\/code> \u043a\u0430\u043a \u0440\u0430\u0437 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e. \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u044b. \u0427\u0442\u043e \u0436\u0435 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ec6\/c38\/af2\/ec6c38af2b0bd9509fe832d72e4248dc.png\" alt=\"Cases \u0441\u044b\u0433\u0440\u0430\u043b \u0437\u043b\u0443\u044e \u0448\u0443\u0442\u043a\u0443\" title=\"Cases \u0441\u044b\u0433\u0440\u0430\u043b \u0437\u043b\u0443\u044e \u0448\u0443\u0442\u043a\u0443\" width=\"871\" height=\"384\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec6\/c38\/af2\/ec6c38af2b0bd9509fe832d72e4248dc.png\"\/><\/p>\n<div><figcaption><code>Cases<\/code> \u0441\u044b\u0433\u0440\u0430\u043b \u0437\u043b\u0443\u044e \u0448\u0443\u0442\u043a\u0443<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0410 \u0435\u0449\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043d\u0443\u0442\u0440\u044c \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u0415\u0441\u0442\u044c \u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0447\u0442\u043e\u0431\u044b Cases \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b \u043d\u0435 \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0431\u0440\u0430\u043b \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432\u0435\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0438 \u0441\u043a\u0430\u043b \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432? \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0434\u0430! <\/p>\n<pre><code class=\"haskell\">SequenceCases[array, {x_, y_, x_} :> {x, y, x}]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/39f\/abf\/e0f\/39fabfe0fd51762dc820981264e5176f.png\" alt=\"\u0423\u0436\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435\" title=\"\u0423\u0436\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435\" width=\"869\" height=\"385\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/39f\/abf\/e0f\/39fabfe0fd51762dc820981264e5176f.png\"\/><\/p>\n<div><figcaption>\u0423\u0436\u0435 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f93\/c86\/58c\/f93c8658c155577401f634379008b471.png\" alt=\"\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c\" title=\"\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c\" width=\"1585\" height=\"891\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f93\/c86\/58c\/f93c8658c155577401f634379008b471.png\"\/><\/p>\n<div><figcaption>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"16\" id=\"16\"><\/a><\/p>\n<h2>\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (expr.., expr&#8230;)<\/h2>\n<p>\u0412\u044b \u0434\u0443\u043c\u0430\u043b\u0438, \u0447\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f &#8212; \u044d\u0442\u043e \u0432\u0441\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c Wolfram Research? \u041a\u0430\u043a \u0431\u044b \u043d\u0435 \u0442\u0430\u043a! \u0414\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0443 \u043d\u0438\u0445 \u043f\u0440\u0438\u043f\u0430\u0441\u0435\u043d \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0442\u0440\u044e\u043a. \u0412\u0441\u0435, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0431\u044b\u043b\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 <code>Blanc<\/code> (<code>_<\/code>) \u0438 <code>Sequence<\/code>  ( <code>x, y, z<\/code>). \u041d\u043e \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0440\u044f\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0439-\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b <code>Repeated<\/code>. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u043c\u0435\u0440: <\/p>\n<pre><code class=\"haskell\">MatchQ[{a, a, b, b, b}, {a.., b..}] (* => True *)<\/code><\/pre>\n<p>\u0414\u0432\u0435 \u0442\u043e\u0447\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 a \u0438 b \u043a\u0430\u043a \u0440\u0430\u0437 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 Repeated. \u0412 \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e? \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 wildcard \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043a\u0440\u044b\u0442\u044c \u0442\u0435 \u0441\u043b\u0443\u0447\u0430\u0438, \u0433\u0434\u0435 \u043c\u044b \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u043e\u0434\u0440\u044f\u0434. \u041d\u043e \u0435\u0449\u0435 \u0432\u0430\u0436\u043d\u0435\u0435 \u0442\u043e, \u0447\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043a\u0430\u043b \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0442 \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a &#8212; \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 &#8212; \u044d\u0442\u043e \u043f\u0430\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b: <\/p>\n<pre><code class=\"haskell\">MatchQ[{{1.0, 1.0}, {2.0, 4.0}, {3.0, 9.0}},    {{_Real, _Real}..} ]<\/code><\/pre>\n<ul>\n<li>\n<p><code>_Real<\/code> &#8212; \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 \u043b\u044e\u0431\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c<\/p>\n<\/li>\n<li>\n<p><code>{_Real, _Real}<\/code> &#8212; \u0441 \u043b\u044e\u0431\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0447\u0438\u0441\u0435\u043b<\/p>\n<\/li>\n<li>\n<p><code>{_Real, _Real}..<\/code> &#8212; \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0430\u0440 \u0434\u043b\u0438\u043d\u043e\u0439 \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<li>\n<p><code>{{_Real, _Real}.. }<\/code> &#8212; \u043d\u0435\u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0433\u0434\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043d\u0430\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a WL &#8212; \u044f\u0437\u044b\u043a \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 \u043b\u044e\u0431\u043e\u0435 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. \u0410 \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d <code>__List<\/code> \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u0440\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 &#8212; \u044d\u0442\u043e \u043b\u0435\u0433\u043a\u043e \u0441\u043b\u043e\u043c\u0430\u0435\u0442 \u043a\u043e\u0434. <\/p>\n<p>\u0418 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 &#8212; \u044d\u0442\u043e \u0442\u0440\u0438 \u0442\u043e\u0447\u043a\u0438 <code>...<\/code>. \u0421 \u0438\u0445 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u043d\u0443\u043b\u044f \u0438 \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437. \u0422.\u0435. \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0447\u0435\u0441\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u043c\u0435\u0441\u0442\u0435. <\/p>\n<pre><code class=\"haskell\">MatchQ[{a, b, c, a, b, c}, {PatternSequence[a, b, c]...}] (* => True *) MatchQ[{}, {PatternSequence[a, b, c]...}]                 (* => True *)<\/code><\/pre>\n<p>\u0412\u044b\u0448\u0435 \u0432\u0438\u0434\u043d\u043e, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0438\u0434 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 &#8212; <code>PatternSequence<\/code>.  \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u043c\u0438, \u0435\u0441\u043b\u0438 \u0442\u043e\u0447\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c, \u043d\u043e \u0438\u0445 \u043d\u0435 \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a.  <\/p>\n<p>\u041d\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u044f \u043d\u043e\u043b\u044c-\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0438 \u043e\u0434\u0438\u043d-\u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0437 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439, \u043b\u0438\u0431\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435. \u0423\u0432\u044b, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u043d\u043e \u043f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a: <\/p>\n<pre><code class=\"haskell\">array = {1, 1\/2, 3, 1\/4, 5, 1\/6}<\/code><\/pre>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">MatchQ[array, {Repeated[_, 5]}] (* False, \u0442.\u0435. 5 - \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 *) MatchQ[array, {Repeated[_, 7]}] (* True *)<\/code><\/pre>\n<p>\u0423\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: <\/p>\n<pre><code class=\"haskell\">MatchQ[array, {Repeated[_, {4, 8}]}] (* True, \u043e\u0442 4 \u0434\u043e 8 *)<\/code><\/pre>\n<p>\u041b\u0438\u0431\u043e \u0442\u043e\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: <\/p>\n<pre><code class=\"haskell\">MatchQ[array, {Repeated[_, {6}]}] (* True \u0442.\u0435. \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u043e\u0432\u043d\u043e 6 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 *) MatchQ[array, {Repeated[_, {7}]}] (* False *)<\/code><\/pre>\n<p>\u0410 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0439 \u0441\u043d\u0438\u0437\u0443 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">MatchQ[array, {Repeated[_, {6, Infinity}]}] (* True *)<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <code>Repeated<\/code> (<code>..<\/code>), \u043d\u043e \u0438 \u0434\u043b\u044f <code>RepeatedNull<\/code> (<code>...<\/code>):<\/p>\n<pre><code class=\"haskell\">MatchQ[array, {RepeatedNull[_, {6, Infinity}]}] (* True *)<\/code><\/pre>\n<p><a class=\"anchor\" name=\"17\" id=\"17\"><\/a><\/p>\n<h2>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 (a | b)<\/h2>\n<p>\u0420\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0435 \u0432\u0438\u0434\u0430: <\/p>\n<pre><code class=\"haskell\">MatchQ[a, a | b] (* => True *) MatchQ[b, a | b] (* => True *)<\/code><\/pre>\n<p>\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043e\u0441\u043e\u0431\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u042d\u0442\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0438\u043b\u0438 \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043a \u0441\u0430\u043c\u044b\u043c \u0440\u0430\u0437\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 &#8212; \u0434\u0430\u0442\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0414\u0430\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 DateObject[{y, m, d, ..}], \u0442\u0430\u043a \u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0438. \u0410 \u0441\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u043e\u043c, \u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"haskell\">timeseries = {   {3911241600, {41000, 42500, 40800, 42000}},    {DateObject[{2023, 12, 12, 12}], 42770},    {\"Tue 12 Dec 2023 16:08:22\", 41600} }; <\/code><\/pre>\n<p> \u0412\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0423 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0435\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u0437 \u0434\u0432\u0443\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0433\u0434\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 &#8212; \u044d\u0442\u043e \u0434\u0430\u0442\u0430, \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0430, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 &#8212; \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u043e. \u0417\u0432\u0443\u0447\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e!<\/p>\n<pre><code class=\"haskell\">MatchQ[timeseries, {   {     _Integer | DateObject[__] | _String,     _Integer | {Repeated[_Integer, {4}]}   } .. }]  (* Out[] = True *)<\/code><\/pre>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u043e \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0432 \u0446\u0435\u043b\u043e\u043c. \u042f \u043c\u043e\u0433\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0443 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u0438 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c! \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d\u0438 \u043f\u043e\u0445\u043e\u0436\u0438 \u0432\u043d\u0443\u0442\u0440\u0438, \u043d\u043e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443. \u0422\u043e\u0433\u0434\u0430 \u044f \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432, \u0435\u0441\u043b\u0438 \u044f \u0434\u0435\u043b\u0430\u044e \u0447\u0442\u043e-\u0442\u043e \u043e\u0431\u0449\u0435\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. \u041f\u0443\u0441\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 MyList \u0438 MyArray. \u0418 \u0442\u0430 \u0438 \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f. \u0427\u0442\u043e \u0435\u0441\u043b\u0438 \u044f \u0445\u043e\u0447\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u043e\u0431\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430? <\/p>\n<pre><code class=\"haskell\">myList = MyList[{1, 2, 3, 4, 5}] myArray = MyArray[{1, 2, 3, 4, 5}]<\/code><\/pre>\n<p>\u0418 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u044f \u0445\u043e\u0447\u0443 \u043f\u0440\u043e\u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432. \u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c: <\/p>\n<pre><code class=\"haskell\">sum = Function[collection,    Total[collection \/. (MyList | MyArray)[data: {__Integer}] :> data] ]  sum[myList]  (* => 15 *) sum[myArray] (* => 15 *)<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ff\/af3\/8dd\/4ffaf38dd82f6358dc177f2b9374c4ff.png\" alt=\"\u041e\u043f\u044f\u0442\u044c \u0436\u0435 MyList \u0438 MyArray \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043d\u043e \u044f \u0443\u0436\u0435 \u043c\u043e\u0433\u0443 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\" title=\"\u041e\u043f\u044f\u0442\u044c \u0436\u0435 MyList \u0438 MyArray \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043d\u043e \u044f \u0443\u0436\u0435 \u043c\u043e\u0433\u0443 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\" width=\"863\" height=\"533\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4ff\/af3\/8dd\/4ffaf38dd82f6358dc177f2b9374c4ff.png\"\/><\/p>\n<div><figcaption>\u041e\u043f\u044f\u0442\u044c \u0436\u0435 <code>MyList<\/code> \u0438 <code>MyArray<\/code> \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043d\u043e \u044f \u0443\u0436\u0435 \u043c\u043e\u0433\u0443 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0443\u0441\u0442\u044c &#8212; <code>Cat<\/code> \u0438 <code>Dog<\/code>. \u0412\u043e\u0442 \u043e\u043d\u0438: <\/p>\n<pre><code class=\"haskell\">Jessica = Cat[\"Jessica\", \"Type\" -> \"Cat\", \"Age\" -> 1.5] Rebert = Dog[\"Robert\", \"Type\" -> \"Dog\", \"Age\" -> 2.5, \"DogBreed\" -> \"Welsh Corgi\"]<\/code><\/pre>\n<p>\u0418 \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0437\u043d\u0430\u044e \u0447\u0442\u043e \u044d\u0442\u0438 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u044e\u0442 \u043e\u0431\u0449\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u044f \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0440\u0430\u0437\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430: <\/p>\n<pre><code class=\"haskell\">getAge[(Cat | Dog)[___, \"Age\" -> age_, ___]] := age<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0434\u0432\u0443\u0445 \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0442\u0438\u043f\u0430\u0445. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e. \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0442\u0438\u043f\u0430 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e: <\/p>\n<pre><code class=\"haskell\">getTypeAndAge[(anamal: Cat | Dog)[___, \"Age\" -> age_, ___]] := {animal, age}<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u043a\u0441\u0442\u0430\u0442\u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b WebSocket: <\/p>\n<pre><code class=\"haskell\">WebSocketSend[client_, message: _String | _ByteArray] :=  BinaryWrite[client, encodeFrame[message]]; <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/199\/4c9\/a8a\/1994c9a8a39c1120dac7df5c1c312e40.png\" alt=\"\u0421\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443\" title=\"\u0421\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443\" width=\"1047\" height=\"506\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/199\/4c9\/a8a\/1994c9a8a39c1120dac7df5c1c312e40.png\"\/><\/p>\n<div><figcaption>\u0421\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0431\u0430\u0439\u0442 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"18\" id=\"18\"><\/a><\/p>\n<h2>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/h2>\n<p>\u042d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439: <\/p>\n<pre><code class=\"haskell\">func[x_, y_: 1] := x + y<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0438\u0441\u0438 <em>\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e<\/em> \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0442\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f: <\/p>\n<pre><code class=\"haskell\">func[x_, y: _: 1] := x + y<\/code><\/pre>\n<p>\u0418 \u0442\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b: <\/p>\n<pre><code class=\"haskell\">func[1]     (* => 11 *) func[1, 2]  (* => 3  *)<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 <code>Default<\/code>:<\/p>\n<pre><code class=\"haskell\">Default[func, 2] = 10 func[x_, y_.] := x + y  func[1]     (* => 11 *) func[1, 2]  (* => 3  *)<\/code><\/pre>\n<p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 &#8212; \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432. \u0422\u043e \u0447\u0442\u043e \u0432 Python \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">def func(x, y = 10):    return x + y<\/code><\/pre>\n<p>\u0412 WL \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432. \u041d\u043e \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0435\u0441\u043b\u0438 \u0443 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438\u043b\u0438 \u0436\u0435 \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0435, \u0447\u0442\u043e \u0432 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0446\u0435\u043b\u043e\u0435, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0438 \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e: <\/p>\n<pre><code class=\"haskell\">func[n_Integer: 1, x_Real: 2.0, r_Rational: 1\/3] :=  {n, x, r}<\/code><\/pre>\n<p>\u0418 \u0432\u0441\u0435 \u0442\u0440\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0422\u043e\u0433\u0434\u0430 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044e \u0442\u0438\u043f\u043e\u0432 \u044f \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u0442\u0430\u043a \u0438 \u0432\u0442\u043e\u0440\u043e\u0439: <\/p>\n<pre><code class=\"haskell\">func[1\/4]    (* => {1, 2.0,  1\/4} *) func[2.45]   (* => {1, 2.45, 1\/3} *) func[3, 1\/5] (* => {3, 2.0,  1\/5} *)<\/code><\/pre>\n<p> \u041d\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439, \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442: <\/p>\n<pre><code class=\"haskell\">func[1\/4, 1] (* => func[1\/4, 1] *)<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e &#8212; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u0445. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0434\u0435\u0442 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043c\u0435\u043d\u044b: <\/p>\n<pre><code class=\"haskell\">f[5, 5] \/. f[x_, y_: 10] :> x + y (* => 10 *) f[5] \/. f[x_, y_: 10] :> x + y    (* => 15 *)<\/code><\/pre>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 <code>Default<\/code> \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439: <\/p>\n<pre><code class=\"haskell\">Default[f, 2] = 10 (* 2 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e *)  f[5] \/. f[x_, y_.] :> x + y  (* => 15 *)<\/code><\/pre>\n<p><a class=\"anchor\" name=\"19\" id=\"19\"><\/a><\/p>\n<h3>\u041e\u043f\u0446\u0438\u0438<\/h3>\n<p>\u041d\u043e \u043a\u0440\u043e\u043c\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u0432\u0430\u044e\u0442 \u0435\u0449\u0435 \u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b. \u042f \u043c\u043e\u0433\u0443 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u043d\u0430 C#, \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: <\/p>\n<pre><code class=\"haskell\">public int method1(int x = 1, int y = 2, int z = 3) {     return x + y + z;  }  var r1 = method1(y: 5); \/\/ => 9<\/code><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u0432 WL? \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0434\u0430 &#8212; \u043e\u043f\u0446\u0438\u0438 \u0438\u043b\u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b. \u0414\u043b\u044f \u043e\u043f\u0446\u0438\u0439 \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>OptionsPattern<\/code>:<\/p>\n<pre><code class=\"haskell\">Options[func] = {   \"opt1\" -> 1,    \"opt2\" -> 2 }  func[x_, OptionsPattern[]] :=  x + OptionValue[\"opt1\"] + OptionValue[\"opt2\"]  func[1]              (* => 4 *) func[1, \"opt1\" -> 3] (* => 6 *) func[1, \"opt2\" -> 3] (* => 5 *)<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0432 \u043a\u043e\u0434\u0435 \u0432\u044b\u0448\u0435 &#8212; \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0446\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; <code>OptionValue<\/code>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0441\u0442\u0440\u043e\u043a\u0438, \u043d\u043e \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438, \u0442.\u0435.: <\/p>\n<pre><code class=\"haskell\">Options[func] = {opt -> 1}  func[OptionsPattern[]] := OptionValue[opt]^2  func[]             (* => 1   *) func[\"opt\" -> 2 ]  (* => 4   *) func[opt   -> 10]  (* => 100 *)<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0446\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438 \u0438 \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043a\u0430\u043a \u0441\u0438\u043c\u0432\u043e\u043b\u044b. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>OptionValue<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041d\u043e \u0442\u043e, \u0447\u0442\u043e \u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0432\u044b\u0448\u0435 &#8212; \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u0439 &#8212; \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0438\u043c\u0435\u043d \u043e\u043f\u0446\u0438\u0439 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438: <\/p>\n<pre><code class=\"haskell\">func[OptionsPattern[{opt1 -> 1, opt2 -> 2}]] :=  OptionValue[opt1]^2 + OptionValue[opt2]^2  func[opt1 -> 2] (* => 8 *)<\/code><\/pre>\n<p>\u0410 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u041f\u0443\u0441\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f: <\/p>\n<pre><code class=\"haskell\">Options[func1] = {opt1 -> 1, opt2 -> 2}  func1[x_, OptionsPattern[]] := x + OptionValue[opt1] + OptionValue[opt2]  func2[opts: OptionsPattern[func1]] := func1[10, opts]  func1[1] (* => 4  == 1  + 1 + 2 *) func2[]  (* => 13 == 10 + 1 + 2 *)<\/code><\/pre>\n<p>\u041d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u043c\u0435\u043d \u0432 <code>OptionsPattern<\/code>, \u0430 \u0434\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e \u043a\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0432 <code>OptionValue<\/code>: <\/p>\n<pre><code class=\"haskell\">Options[func1] = {\"opt\" -> 1};  Options[func2] = {\"opt\" -> 2};   func3[opts : OptionsPattern[{\"opt\" -> 3, func1, func2}]] := {   \"FromF1\" -> OptionValue[func1, {opts}, \"opt\"],   \"FromF2\" -> OptionValue[func2, {opts}, \"opt\"],   \"FromF3\" -> OptionValue[\"opt\"] }  func3[]           (* => {\"FromF1\" -> 1,\"FromF2\" -> 2,\"FromF3\" -> 3} *) func3[\"opt\" -> 5] (* => {\"FromF1\" -> 5,\"FromF2\" -> 5,\"FromF3\" -> 5} *)<\/code><\/pre>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f? \u0412\u0435\u0434\u044c \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e  \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e? \u041a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u0430. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043e\u043f\u0446\u0438\u0439, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0442\u043e \u0432\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">MatchQ[   {{x -> y}, y :> z, g -> {1, 2, 3}},    OptionsPattern[] ] (* => True *)<\/code><\/pre>\n<p>\u0410 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>Cases<\/code> \u0438\u043b\u0438 <code>Replace<\/code> \u043d\u0430\u0431\u043e\u0440 \u043e\u043f\u0446\u0438\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c. <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044c \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u043f\u0446\u0438\u0439. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043b\u0435\u0433\u043a\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u043c \u043d\u0430 \u0445\u043e\u0434\u0443. \u0422\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043e\u0439. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e (<code>-><\/code>) \u043d\u0430 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 (<code>:><\/code>): <\/p>\n<pre><code class=\"haskell\">Options[dateString] = {date :> Now}  dateString[OptionsPattern[]] := DateString[OptionValue[date], {\"DateShort\"}]  dateString[] dateString[date -> Yesterday]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/929\/aef\/d7a\/929aefd7a6955157255f890156301665.png\" alt=\"\u0414\u0430\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043d\u043e\u0432\u0430\u044f\" title=\"\u0414\u0430\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043d\u043e\u0432\u0430\u044f\" width=\"892\" height=\"429\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/929\/aef\/d7a\/929aefd7a6955157255f890156301665.png\"\/><\/p>\n<div><figcaption>\u0414\u0430\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043d\u043e\u0432\u0430\u044f<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"20\" id=\"20\"><\/a><\/p>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/h2>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 &#8212; <code>PatternTest<\/code>. \u0421 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043d\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c <code>True<\/code> \u0438\u043b\u0438 <code>False<\/code>, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d \u0438\u043b\u0438 \u043d\u0435\u0442. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u043e\u0433 \u043e\u0433\u0440\u0430\u0436\u0434\u0430\u044e\u0449\u0435\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u0437 Python:<\/p>\n<pre><code class=\"haskell\">number = 10 match number:    x if 0 &lt;= x &lt; 10:      print(\"\u0446\u0438\u0444\u0440\u0430\")   _:      print(\"\u0447\u0438\u0441\u043b\u043e\")<\/code><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0433\u043e \u0436\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0432 WL:<\/p>\n<pre><code class=\"haskell\">number = 10  MatchQ[number + 1, _?(0 &lt;= # &lt; 10&amp;)] MatchQ[number - 1, _?(0 &lt;= # &lt; 10&amp;)]<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u0437\u0430\u0442\u0435\u043c \u0437\u043d\u0430\u043a \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0438 \u0434\u0430\u043b\u0435\u0435 \u043b\u044e\u0431\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u0432\u0435\u0440\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code> \u0438\u043b\u0438 <code>False<\/code>. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e: <\/p>\n<pre><code class=\"haskell\">less10Q[x_] := x &lt; 10  MatchQ[10, _?less10Q] (* => False *) MatchQ[9,  _?less10Q] (* => True  *)<\/code><\/pre>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">func[x_?less10Q] := \"\u043c\u0435\u043d\u044c\u0448\u0435 10\" func[___]        := \"\u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435\"<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439-\u043f\u0440\u0435\u0434\u0438\u043a\u0430\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram. \u0412\u0441\u0435 \u043e\u043d\u0438 \u043f\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 <code>*Q<\/code>. \u0412\u043e\u0442 \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435: <\/p>\n<pre><code class=\"haskell\">f[x_?NumericQ]     := \"\u044d\u0442\u043e \u043e\u043d\u043e \u0438\u0437 4 \u0442\u0438\u043f\u043e\u0432 \u0447\u0438\u0441\u0435\u043b \u0438\u043b\u0438 \u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\" f[x_?NumberQ]      := \"\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u043b\u0430\" f[a_?ListQ]        := \"\u043b\u044e\u0431\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438\" f[a_?ArrayQ]       := \"\u0441\u043f\u0438\u0441\u043a\u0438 \u0447\u0438\u0441\u0435\u043b\" f[a_?MatrixQ]      := \"\u043c\u0430\u0442\u0440\u0438\u0446\u044b\" f[a_?StringQ]      := \"\u0441\u0442\u0440\u043e\u043a\u0438\" f[a_?Positive]     := \"\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430\" f[a_?IntegerQ]     := \"\u0446\u0435\u043b\u044b\u0435\" f[a_?AssociationQ] := \"\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u0438\"<\/code><\/pre>\n<p><a class=\"anchor\" name=\"21\" id=\"21\"><\/a><\/p>\n<h2>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h2>\n<p>\u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043e\u0433\u0440\u0430\u0436\u0434\u0430\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435 &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>Condition<\/code>  (<code>\/;<\/code>):<\/p>\n<pre><code class=\"haskell\">f[x_, y_] \/; x &lt; y  := y - x f[x_, y_] \/; x >= y := x - y<\/code><\/pre>\n<p>\u0412\u044b\u0448\u0435 \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0435. \u0421\u0430\u043c\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0437\u043d\u0430\u043a\u0430\u043c\u0438 <code>\/;<\/code> \u0438 <code>:=<\/code>. \u0412 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c <code>True<\/code> \u0438\u043b\u0438 <code>False<\/code>. \u0428\u0430\u0431\u043b\u043e\u043d \u0441\u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0435\u0441\u043b\u0438 \u0432\u0435\u0440\u043d\u0435\u0442\u0441\u044f <code>True<\/code> \u0438 \u043d\u0435 \u0441\u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f &#8212; \u0435\u0441\u043b\u0438  \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0444\u0430\u043a\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f. \u0422.\u0435. \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">f[{x_, y_} \/; x &lt; y] := y - x f[x_, y_]            := y - x \/; x &lt; y<\/code><\/pre>\n<p><a class=\"anchor\" name=\"22\" id=\"22\"><\/a><\/p>\n<h2>\u0414\u043e\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412\u043e\u0442 \u043c\u044b \u0438 \u0434\u043e\u0448\u043b\u0438 \u0434\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0433\u043b\u0430\u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u041a\u0430\u043a \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 &#8212; \u0432\u0441\u0435 \u0432 Wolfram Language \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u044f \u043c\u043e\u0433\u0443 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c:<\/p>\n<pre><code class=\"haskell\">myPattern = _ <\/code><\/pre>\n<p>\u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u043b\u044e\u0431\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u0412 \u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0435: <\/p>\n<pre><code class=\"haskell\">MatchQ[x, myPattern] (* => True *)<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439: <\/p>\n<pre><code class=\"haskell\">Cases[{{1, 2, 3}, f[4, 5, 6]}, f[myPattern, __]] (* => {f[1, 2, 3]} *)<\/code><\/pre>\n<p>\u0418 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439: <\/p>\n<pre><code class=\"haskell\">f[x: myPattern] := x + 1  f[1] (* => 2 *)<\/code><\/pre>\n<p>\u041d\u043e \u0442\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0440\u0435\u0437\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u0412\u043e\u0442 \u0435\u0441\u0442\u044c \u0443 \u043c\u0435\u043d\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"haskell\">expr = f[g[x, y], z]<\/code><\/pre>\n<p> \u042f \u043c\u043e\u0433\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u043d\u0435\u043c \u0447\u0430\u0441\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">expr \/. f[args___] :> f2[args] (* => f2[g[x, y], z] *)<\/code><\/pre>\n<p>\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430? \u0418\u043b\u0438 \u044f \u0437\u0430\u0445\u043e\u0447\u0443 \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0422\u041e\u041b\u042c\u041a\u041e \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0437\u0430\u043c\u0435\u043d\u0438\u0432 \u0435\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0438\u0436\u0435 \u044f \u0445\u043e\u0447\u0443 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u043c\u0435\u043d\u0438\u0442 <code>f[___]<\/code> \u043d\u0430 <code>f[x, y, z]<\/code>, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c: <\/p>\n<pre><code class=\"haskell\">{f[1, 2, 3], f[___], f[]} \/. f[___] :> f[x, y, z]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6b0\/090\/68f\/6b009068f09e0adbb67034b7137ff6b9.png\" alt=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u043b \u043b\u0438\u0448\u043d\u0435\u0433\u043e\" title=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u043b \u043b\u0438\u0448\u043d\u0435\u0433\u043e\" width=\"755\" height=\"282\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b0\/090\/68f\/6b009068f09e0adbb67034b7137ff6b9.png\"\/><\/p>\n<div><figcaption>\u041a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u043b \u043b\u0438\u0448\u043d\u0435\u0433\u043e<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043d\u0443\u0436\u043d\u0430 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a \u0442\u043e\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0430 \u043d\u0435 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c &#8212; \u044d\u0442\u043e\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a &#8212; <code>Verbatim<\/code>. \u0412\u043e\u0442 \u043a\u0430\u043a \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f: <\/p>\n<pre><code class=\"haskell\">{f[1, 2, 3], f[___], f[]} \/. f[Verbatim[___]] :> f[x, y, z]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8ed\/aa4\/cbf\/8edaa4cbff744267c517aa0472960167.png\" alt=\"\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438. \" title=\"\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438. \" width=\"770\" height=\"377\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8ed\/aa4\/cbf\/8edaa4cbff744267c517aa0472960167.png\"\/><\/p>\n<div><figcaption>\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u043b\u0438. <\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u043d\u0443\u0442\u0440\u044c <code>Verbatim<\/code> \u0438 \u0442\u043e\u0433\u0434\u0430 \u043e\u043d \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043c\u0430\u0442\u0447\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432&#8230; \u041a\u0430\u043a \u0434\u0443\u043c\u0430\u0435\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0442\u0430\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0430\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>Verbatim<\/code>?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/143\/ec0\/16b\/143ec016b85b53f479a128f471c78f2e.png\" alt=\"\u0420\u0430\u0439\u0430\u043d \u0424\u0440\u0438\u0434\u043b\u0438\u043d\u0445\u0430\u0443\u0441 \u0443\u0432\u0435\u0440\u0435\u043d \u0432 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435\" title=\"\u0420\u0430\u0439\u0430\u043d \u0424\u0440\u0438\u0434\u043b\u0438\u043d\u0445\u0430\u0443\u0441 \u0443\u0432\u0435\u0440\u0435\u043d \u0432 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435\" width=\"602\" height=\"326\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/143\/ec0\/16b\/143ec016b85b53f479a128f471c78f2e.png\"\/><\/p>\n<div><figcaption>\u0420\u0430\u0439\u0430\u043d \u0424\u0440\u0438\u0434\u043b\u0438\u043d\u0445\u0430\u0443\u0441 \u0443\u0432\u0435\u0440\u0435\u043d \u0432 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f API. \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 WL. \u041c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e HTTP:<\/p>\n<pre><code class=\"bash\">GET \/api\/myFunc?n=4&amp;x=1&amp;y=2 HTTP\/1.1<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f: <\/p>\n<pre><code class=\"haskell\">myFunc[x_Real, y_Real, n_Integer] := x^n + y^n myFunc[x_Real, y_Real] := x + y<\/code><\/pre>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0434\u0432\u0430, \u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0442\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0440\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c: <\/p>\n<pre><code class=\"haskell\">myFunc[1.0, 2.0, 4] (* \u0442.\u0435. myFunc[x, y, n] *)<\/code><\/pre>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u043e\u0442 \u0442\u0430\u043a: <\/p>\n<pre><code class=\"haskell\">parseRequest[path_String] :=  Module[{parsed, func, params},    parsed = URLParse[path];    func = ToExpression[parsed[[\"Path\", -1]]];   params = &lt;|parsed[\"Query\"]|>;    {func, params} ]  req = parseRequest[\"\/api\/myFunc?n=4&amp;x=1&amp;y=2\"]  (* Out[]= {myFunc, &lt;|\"n\" -> \"4\", \"x\" -> \"1\", \"y\" -> \"2\"|>} *)<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: <\/p>\n<pre><code class=\"haskell\">Length[req[[2]]] (* => 3 *)<\/code><\/pre>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: <\/p>\n<pre><code class=\"haskell\">def = Cases[DownValues @@ {req[[1]]},     _[_[_[args___]], _] \/; Length[{args}] == Length[req[[2]]] ][[1]]  (* HoldPattern[myFunc[x_Real, y_Real, n_Integer]] :> x^n + y^n *)<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u0438\u0445 \u0431\u044b\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e &#8212; \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0435\u0449\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f, \u043d\u043e \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0434\u0438\u043d \u0448\u0430\u0431\u043b\u043e\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0437\u0430\u043c\u0435\u043d\u044b \u0432\u044b\u0442\u0430\u0449\u0438\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0438 \u0442\u0438\u043f\u044b \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043c\u044b \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>Round<\/code> \u0438\u043b\u0438 \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>N<\/code>: <\/p>\n<pre><code class=\"haskell\">holdExpr = ((def[[1]] \/. HoldPattern -> Hold) \/. {    Verbatim[Pattern][name_, Verbatim[Blank[Real]]] :> N[name],     Verbatim[Pattern][name_, Verbatim[Blank[Integer]]] :> Round[name]    })  (* Out[] = Hold[myFunc[N[x], N[y], Round[n]]] *)<\/code><\/pre>\n<p>\u041e\u0441\u0442\u0430\u043b\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0448\u0430\u0433. \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e: <\/p>\n<pre><code class=\"haskell\">result = holdExpr \/.   KeyValueMap[ToExpression[#1] -> ToExpression[#2] &amp;, req[[2]]]  (* Out[] = Hold[myFunc[N[1], N[2], Round[4]]] *)  ReleaseHold[result]  (* Out[] = 17. *)<\/code><\/pre>\n<p>\u042d\u0442\u043e\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0432 \u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435, \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0445\u043e\u0434\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043c\u043e\u0433\u043b\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u0430\u0439\u0442\u0438 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043d\u0443\u0436\u043d\u043e\u0435 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0438 \u0442\u0438\u043f\u0430\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/846\/36d\/a8e\/84636da8ea00fd105f23c61a32c91f9f.png\" alt=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e Verbatim \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u0436\u0435 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443\" title=\"\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e Verbatim \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u0436\u0435 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443\" width=\"854\" height=\"759\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/846\/36d\/a8e\/84636da8ea00fd105f23c61a32c91f9f.png\"\/><\/p>\n<div><figcaption>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e Verbatim \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u0436\u0435 \u043a \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0443<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"23\" id=\"23\"><\/a><\/p>\n<h2>\u0423\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u0415\u0449\u0435 \u043e\u0434\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0432 \u044f\u0437\u044b\u043a\u0435 &#8212; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439.  \u041b\u044e\u0431\u043e\u043c\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0432 \u044f\u0437\u044b\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0438\u0437 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 <code>Hold*<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>HoldAll<\/code>, <code>HoldFirst<\/code> \u0438\u043b\u0438 <code>HoldRest<\/code>. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432: <\/p>\n<pre><code class=\"haskell\">SetAttributes[myFunc, HoldAll]<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0437\u043e\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>myFunc<\/code> \u0431\u0443\u0434\u0435\u0442 <em>\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c<\/em> \u043e\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043b\u044e\u0431\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0442.\u0435.: <\/p>\n<pre><code class=\"haskell\">anyFunc[1 + 1, 2 + 2] (* => anyFunc[2, 4]        *) myFunc[1 + 1, 2 + 2]  (* => myFunc[1 + 1, 2 + 2] *)<\/code><\/pre>\n<p>\u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0437\u0430\u043c\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u0435\u043b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\u043c\u0435\u0435\u0442 <code>Hold<\/code>-\u0430\u0442\u0440\u0438\u0431\u0443\u0442.  \u0417\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0437\u044f\u0442\u044c \u0432 \u0435\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0438 \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c. \u041f\u0440\u0438\u0447\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b? \u042f \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u0432 \u044f\u0437\u044b\u043a\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u0430\u0436\u0435 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0448\u0435. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0438\u0436\u0435: <\/p>\n<pre><code class=\"haskell\">_ + _ (* => 2 * _ *)<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0441\u043b\u043e\u0436\u0438\u0432 \u0434\u0432\u0430 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <code>2 * _<\/code>. \u0413\u0435\u043d\u0438\u0430\u043b\u044c\u043d\u043e!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f86\/072\/c9f\/f86072c9fec3f3ff4b15b45d46f7ac75.png\" alt=\"\u042f \u0442\u043e\u0436\u0435 \u0431\u044b\u043b \u0432 \u0448\u043e\u043a\u0435\" title=\"\u042f \u0442\u043e\u0436\u0435 \u0431\u044b\u043b \u0432 \u0448\u043e\u043a\u0435\" width=\"1280\" height=\"720\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f86\/072\/c9f\/f86072c9fec3f3ff4b15b45d46f7ac75.png\"\/><\/p>\n<div><figcaption>\u042f \u0442\u043e\u0436\u0435 \u0431\u044b\u043b \u0432 \u0448\u043e\u043a\u0435<\/figcaption><\/div>\n<\/figure>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0438 \u0431\u044b\u043b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d <em>\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d<\/em>. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d \u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0441\u0430\u043c\u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0433\u0434\u0430 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430\u043c\u0435\u043d\u044b. \u0418 \u044f \u0445\u043e\u0447\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0430\u043c\u043e <em>\u043f\u0440\u0430\u0432\u0438\u043b\u043e<\/em> \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435:  <\/p>\n<pre><code class=\"haskell\">{1, 2, 3, 4 -> 5, 6,  7} \/. x_ -> y_ -> f[x, y]<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/034\/3c0\/165\/0343c016544845773e3a9a2c4abbea5e.png\" alt=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f Mathematica \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043c\u043d\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0438\u0441\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b $?\" title=\"\u041a\u0430\u0436\u0435\u0442\u0441\u044f Mathematica \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043c\u043d\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0438\u0441\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b $?\" width=\"847\" height=\"325\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/034\/3c0\/165\/0343c016544845773e3a9a2c4abbea5e.png\"\/><\/p>\n<div><figcaption>\u041a\u0430\u0436\u0435\u0442\u0441\u044f Mathematica \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u043c\u043d\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u041e\u0442\u043a\u0443\u0434\u0430 \u0432\u0437\u044f\u043b\u0438\u0441\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u044b <code>$<\/code>?<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0442\u043e \u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u0442\u044c? \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c <code>HoldPattern<\/code>:<\/p>\n<pre><code class=\"haskell\">{1, 2, 3, 4 -> 5, 6,  7} \/. HoldPattern[x_ -> y_] -> f[x, y]  (* Out[] = {1, 2, 3, f[4, 5], 6, 7} *)<\/code><\/pre>\n<p>\u041d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>HoldPattern<\/code> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0434\u043a\u0430\u044f \u0448\u0442\u0443\u043a\u0430. \u041c\u0430\u043b\u043e \u043a\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0435\u0439 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e, \u0437\u0430\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0442\u0435\u0441\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 (\u043c\u044b \u0443\u0436\u0435 \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u043e \u0432\u044b\u0448\u0435). \u0412\u0441\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0432\u0438\u0434\u0435 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430.<\/p>\n<p><a class=\"anchor\" name=\"24\" id=\"24\"><\/a><\/p>\n<h2>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 4 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445. \u041e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u043d\u0438 \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043f\u043e \u0444\u043e\u0440\u043c\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 <code>OwnValues<\/code>: <\/p>\n<pre><code class=\"haskell\">x = 10;   OwnValues[x] (* {HoldPattern[x] :> 10}} *)<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u0432 \u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043d\u0435\u0433\u043e. \u041f\u043e\u0447\u0435\u043c\u0443 <code>OwnValues<\/code>? \u041d\u0443 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0432\u0432\u0438\u0434\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432\u043e\u043a\u0440\u0443\u0433. \u041f\u0440\u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435. \u041d\u043e \u0432 \u0441\u0442\u0440\u043e\u0433\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435 \u0432 <code>OwnValues<\/code> \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432\u0441\u0435, \u0447\u0442\u043e \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"haskell\">MatchQ[Hold[x], HoldPattern[_Symbol]]<\/code><\/pre>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 &#8212; \u044d\u0442\u043e <code>DownValues<\/code>. \u0422.\u0435. \u043d\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0415\u0433\u043e \u0441\u043c\u044b\u0441\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0438 \u0445\u0440\u0430\u043d\u0438\u0442 \u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0434\u0430: <\/p>\n<pre><code class=\"haskell\">f[x_, y_, z_] := {x, y, z}  MatchQ[Hold[f[x, y, z]], HoldPattern[_Symbol[___]]]<\/code><\/pre>\n<p>\u0422.\u0435. \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432\u0438\u0434\u0430 \u0441\u0438\u043c\u0432\u043e\u043b + \u0442\u0435\u043b\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <em>\u043d\u0438\u0436\u0435<\/em> \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435. \u0417\u0430\u0442\u0435\u043c \u0438\u0434\u0435\u0442 <code>SubValues<\/code>. \u041c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c \u0432\u0438\u0434\u0430 \u0441\u0438\u043c\u0432\u043e\u043b + \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e <em>\u0442\u0435\u043b<\/em> \u043d\u0438\u0436\u0435 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435: <\/p>\n<pre><code class=\"haskell\">f[x_][y_][z_] := {x, y, z}  MatchQ[Hold[f[x][y][z]], HoldPattern[_Symbol[___][___][___]]]<\/code><\/pre>\n<p>\u0420\u0430\u0434\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 SubValues &#8212; \u043d\u0435 \u0441\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u0445\u043e\u0442\u044c \u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0442\u0447\u0438\u0442\u0441\u044f \u0441 \u0434\u0432\u0443\u043c\u044f \u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 \u043f\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0443 \u0432 WL \u043d\u0435\u0442. <\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435. \u042d\u0442\u043e <code>UpValues<\/code>, \u0442.\u0435. \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0439. \u041e\u043d\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c \u0432\u0438\u0434\u0430: <\/p>\n<pre><code class=\"haskell\">f \/: g[f[x_, y_, z_]] := {x, y, z}  UpValues[f]  MatchQ[Hold[g[f[x, y, z]]], HoldPattern[_Symbol[___, _Symbol[___], ___]]]<\/code><\/pre>\n<p>\u042d\u0442\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u0445 \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445. <\/p>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043e\u0442 \u0438 \u0432\u0441\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0435 <code>*Values<\/code> \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438. \u0421\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u044f \u0445\u043e\u0442\u0435\u043b \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c &#8212; \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u0438 \u0441\u043f\u0438\u0441\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b. \u041a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043a\u043e\u0433\u0434\u0430 \u044f\u0434\u0440\u043e WL \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442 \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &#8212; \u043e\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a \u0432 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c. \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u043c\u0435\u043d\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0438 \u043f\u0440\u0430\u0432\u0438\u043b &#8212; \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <strong>\u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/strong>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430 WL \u043d\u0435\u044f\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433, \u043e \u0447\u0435\u043c \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435. <\/p>\n<p>\u041d\u0443 \u0438 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 &#8212; \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <a href=\"https:\/\/github.com\/KirillBelovTest\/Objects\" rel=\"noopener noreferrer nofollow\">Objects<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0432\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u041a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432. \u041d\u0438\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>Language`ExtendedFullDefinition<\/code> \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 <code>Own\/Down\/Sub\/UpValues<\/code>: <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afe\/16f\/6ae\/afe16f6ae5b2cdfb35cc2967b899b327.png\" alt=\"\u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" title=\"\u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" width=\"1126\" height=\"674\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/afe\/16f\/6ae\/afe16f6ae5b2cdfb35cc2967b899b327.png\"\/><\/p>\n<div><figcaption>\u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u0435\u0442\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<p><a class=\"anchor\" name=\"25\" id=\"25\"><\/a><\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0445\u043e\u0447\u0443 \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u0432\u0441\u0435\u0445, \u043a\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u044f\u0437\u044b\u043a Wolfram \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u0435\u043d \u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d. \u0410 \u0432\u0435\u0434\u044c \u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 WL \u0432\u044b\u0431\u0440\u0430\u0432 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0438\u0437 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0430\u0436\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430. \u041d\u043e \u044f \u043d\u0438 \u0432 \u043a\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u043f\u0440\u0438\u0437\u044b\u0432\u0430\u044e \u0431\u0440\u043e\u0441\u0430\u0442\u044c\u0441\u044f \u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0432 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0447\u0443\u0440\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u0421\u043f\u0443\u0441\u0442\u044f \u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430 WL \u044f \u0441\u0430\u043c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0448\u0435\u043b \u0441\u0442\u0438\u043b\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0443 \u0437\u0430\u043f\u0443\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439. \u041d\u043e \u044f \u0432\u0441\u0435 \u0435\u0449\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0448\u0430\u0431\u043b\u043e\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043e\u043d\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f. \u0417\u0430\u0442\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0433\u0447\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c. \u0412\u0441\u0435 \u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u043c\u0435\u0440\u0443. \u041c\u043e\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u0437\u0434\u0435\u0441\u044c &#8212; \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441\u043e \u0432\u0441\u0435\u043c \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u044f\u0437\u044b\u043a\u0430, \u0430 \u0447\u0442\u043e \u0438\u0437 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u0434\u0435 &#8212; \u0443\u0436\u0435 \u0432\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438.<\/p>\n<p><strong>\u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/strong><\/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\/779550\/\"> https:\/\/habr.com\/ru\/articles\/779550\/<\/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\"> \/ : . .. &#8230; | _ __ ___, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435&#187; title=&#187;\u042d\u043d\u0430\u043a\u0438\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u0437 ; -> \/ : . .. &#8230; | _ __ ___, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435&#187; width=&#187;1920&#8243; height=&#187;800&#8243; data-src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d89\/111\/4bc\/d891114bca80c313148702e6e261e712.png&#187;\/><\/p>\n<div><figcaption>\u042d\u043d\u0430\u043a\u0438\u043d \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0438\u0437 <code>; -> \/ : . .. ... | _ __ ___<\/code>, <br \/>\u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u044f\u0437\u044b\u043a \u0432\u043e\u043e\u0431\u0449\u0435<\/figcaption><\/div>\n<\/figure>\n<blockquote>\n<p>\u0420\u0435\u0434\u043a\u0430\u044f \u043f\u0442\u0438\u0446\u0430 \u0434\u043e\u043b\u0435\u0442\u0438\u0442 \u0434\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u0414\u043d\u0435\u043f\u0440\u0430, \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0441\u0438\u043b\u0438\u0442 \u0432\u0441\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0432 WL. \u041d\u0435\u0442 \u0435\u043c\u0443 \u0440\u0430\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433\u0435. \u0427\u0443\u0434\u0435\u043d \u0438 \u043d\u0435\u043e\u0431\u044b\u0447\u0435\u043d \u044f\u0437\u044b\u043a \u044d\u0442\u043e\u0442. \u0418\u0437\u043e\u0431\u0438\u043b\u0443\u0435\u0442 \u043e\u043d \u0442\u043e\u0447\u043a\u0430\u043c\u0438, \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u0434\u0430 \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432 \u0433\u043b\u0430\u0437\u0430\u0445 \u0440\u044f\u0431\u0438\u0442, \u0434\u0430 \u0440\u0430\u0437\u0443\u043c \u043c\u0443\u0442\u043d\u0435\u0435\u0442. <\/p>\n<\/blockquote>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u043d\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0432 Wolfram Language (WL) \u0438 \u043f\u043e\u043a\u0430\u0436\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u0433\u0434\u0435 \u044f \u0441\u0430\u043c \u0438 \u043c\u043e\u0438 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0435\u0433\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442. \u0410 \u0442\u0430\u043a\u0436\u0435 \u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0432\u0441\u0435\u043c\u0438 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c\u0438 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043b\u0438\u0447\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043d\u0430 WL. \u041f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f &#8212; \u043d\u0430 Python \u0438 C#. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0441\u0435\u043c, \u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u043a\u043e\u043c \u0441 WL \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u0434 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441. <\/p>\n<h2>\u041e\u0433\u043b\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/h2>\n<ol>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\"><u>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\"><u>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Python<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\"><u>\u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\" rel=\"noopener noreferrer nofollow\"><u>\u0427\u0435\u043c \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5\" rel=\"noopener noreferrer nofollow\"><u>MatchQ<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#6\" rel=\"noopener noreferrer nofollow\"><u>Switch<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\" rel=\"noopener noreferrer nofollow\"><u>Cases<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#8\" rel=\"noopener noreferrer nofollow\"><u>Replce*<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#9\" rel=\"noopener noreferrer nofollow\"><u>Set*<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#10\" rel=\"noopener noreferrer nofollow\"><u>\u0428\u0430\u0431\u043b\u043e\u043d\u044b<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#11\" rel=\"noopener noreferrer nofollow\"><u>\u0422\u043e\u0447\u043d\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#12\" rel=\"noopener noreferrer nofollow\"><u>\u0412\u0441\u0435 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#13\" rel=\"noopener noreferrer nofollow\"><u>\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#14\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#15\" rel=\"noopener noreferrer nofollow\"><u>\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#16\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#17\" rel=\"noopener noreferrer nofollow\"><u>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#18\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#19\" rel=\"noopener noreferrer nofollow\"><u>\u041e\u043f\u0446\u0438\u0438<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#20\" rel=\"noopener noreferrer nofollow\"><u>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u0430<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/21\" rel=\"noopener noreferrer nofollow\"><u>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#22\" rel=\"noopener noreferrer nofollow\"><u>\u0414\u043e\u0441\u043b\u043e\u0432\u043d\u043e\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#23\" rel=\"noopener noreferrer nofollow\"><u>\u0423\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#24\" rel=\"noopener noreferrer nofollow\"><u>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#25\" rel=\"noopener noreferrer nofollow\"><u>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/u><\/a><\/p>\n<\/li>\n<\/ol>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0447\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u0430\u043a <em>&#171;\u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433&#187;<\/em> \u0438\u043b\u0438 <em>&#171;\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c\/\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c&#187;<\/em>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043e\u0447\u0435\u0432\u0430\u043b \u0432 \u044f\u0437\u044b\u043a\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0412 Python \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.10, \u0432 C# \u043e\u043d \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 7, \u0432 JavaScript \u0435\u0433\u043e \u043d\u0435\u0442 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441. \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 F# \u0438\u043b\u0438 \u0432 Scala, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0438 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c. \u041d\u043e \u043c\u044b \u0437\u0434\u0435\u0441\u044c \u0440\u0430\u0434\u0438 <em>Wolfram Language<\/em>. \u0412 \u043d\u0435\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.0, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u0432 1988 \u0433\u043e\u0434\u0443. \u0422.\u0435. \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u044f\u0437\u044b\u043a\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u044f \u0440\u0430\u0434\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c Lisp, \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0431\u044b\u043b\u043e \u0435\u0449\u0435 \u0440\u0430\u043d\u044c\u0448\u0435. <\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u044f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0441\u044f \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043a \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u043d\u0438\u043c \u0432 C#, Python, Scala, F#. \u0420\u0430\u0434\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0434\u0432\u0430 \u044f\u0437\u044b\u043a\u0430 \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0434\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430. \u041f\u0440\u0438\u0447\u0435\u043c, \u044f \u0445\u043e\u0447\u0443 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u044f \u043d\u0430\u0448\u0435\u043b \u0447\u0442\u043e-\u0442\u043e \u043d\u043e\u0432\u043e\u0435 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 \u0434\u043b\u044f \u0441\u0435\u0431\u044f. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 C# \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b, Python \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 Scala \u043c\u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>case class MyClass<\/code>, \u0430 F# \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0430\u0445\u0430\u0440\u0430 \u0441 \u0432\u044b\u0447\u0443\u0440\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443 \u043c\u0435\u043d\u044f \u0438 \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c \u043d\u0430 \u043f\u0430\u0442\u0442\u0435\u0440\u043d-\u043c\u0430\u0442\u0447\u0438\u043d\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram.  <\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Python<\/h2>\n<p>\u0412\u0441\u0435 \u043b\u044e\u0431\u044f\u0442 Python \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u0435\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0438\u0447\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0443\u0433\u0430\u0442\u044c \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 WL \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435. \u0418\u0442\u0430\u043a, \u0432 Python \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u0430 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0438\u0445 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043d\u0435 \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0439. \u0427\u0442\u043e \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0434\u0430\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430. \u042f \u043e\u0447\u0435\u043d\u044c \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Python \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u0435, \u0447\u0442\u043e \u0438 \u0441\u0435\u0439\u0447\u0430\u0441. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432. <\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: <\/p>\n<pre><code class=\"python\">number = 1 match number:     case 1:         print('\u043e\u0434\u0438\u043d')     case 2:         print('\u0434\u0432\u0430')<\/code><\/pre>\n<p>\u0418\u043b\u0438 \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 <em>wildcard<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 &#171;\u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e&#187;, \u0435\u0441\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u043e: <\/p>\n<pre><code class=\"python\">number = 2 match number:     case 1:         print(\"\u043e\u0434\u0438\u043d\")     case _:         print(\"\u043d\u0435 \u043e\u0434\u0438\u043d\")<\/code><\/pre>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u043f\u0438\u0441\u043a\u0438 \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0438: <\/p>\n<pre><code class=\"python\">list1 = [1, 2] match list1:     case []:            print('\u043f\u0443\u0441\u0442\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a')     case [x]:         print('\u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043e\u0434\u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c x = {0}'.format(x))     case [x, *_]:         print('\u043c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 x = {0}'.format(x))<\/code><\/pre>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u044b\u0448\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u0447\u0430\u0441\u0442\u044f\u043c\u0438 \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 &#8212; \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <code>x<\/code>.<\/p>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435, \u0447\u0442\u043e \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043d\u043e \u043d\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 &#8212; \u044d\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>dataclass<\/code>: <\/p>\n<pre><code class=\"python\">from dataclasses import dataclass  @dataclass class Coordinate:     x: int     y: int     z: int  coordinate = Coordinate(1, 2, 3) match coordinate:     case Coordinate(0, 0, 0):         print('\u041d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442')     case _:         print('\u041b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0442\u043e\u0447\u043a\u0430')<\/code><\/pre>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u0438 \u0432\u0441\u0435. \u042f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u044b\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u043c\u0435\u043d\u044f \u0437\u043d\u0430\u044e\u0442 \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c \u0432 Python, \u043d\u043e \u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432\u044b\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0442\u0438 \u0440\u0435\u0447\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u0441\u0442\u0430\u0442\u044c\u0438. \u0427\u0430\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u044f \u0432\u0437\u044f\u043b \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/yandex_praktikum\/articles\/547902\/\" rel=\"noopener noreferrer nofollow\">&#171;Pattern matching. \u0422\u0435\u043f\u0435\u0440\u044c \u0438 \u0432 Python&#187;<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0430\u0432\u0442\u043e\u0440 <a class=\"mention\" href=\"\/users\/topenkoff\">@topenkoff<\/a>.<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>\u0422\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044f<\/h2>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c Wolfram Language, \u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e <em>&#171;\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c&#187;<\/em> \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c <em>&#171;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c&#187;<\/em>. <\/p>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 Wolfram \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u043e\u043c\u044b \u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p><strong>\u0410\u0442\u043e\u043c<\/strong> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 &#8212; \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e, \u0441\u0442\u0440\u043e\u043a\u0430 \u0438\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b. <\/p>\n<p><strong>\u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/strong> &#8212; \u0430\u043d\u0430\u043b\u043e\u0433 \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412\u0441\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0430\u0442\u043e\u043c\u043e\u0432 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043d\u0438\u0445. \u041d\u0438\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0430\u0442\u043e\u043c\u043e\u0432: <\/p>\n<pre><code class=\"haskell\">1           (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Integer, \u0442.\u0435. \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 2.0         (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Real, \u0442.\u0435. \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 1\/3         (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Rational, \u0442.\u0435. \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) 4 * I       (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Complex, \u0442.\u0435. \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e *) \"string\"    (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c String, \u0442.\u0435. \u0441\u0442\u0440\u043e\u043a\u0430 *) variable    (* \u0430\u0442\u043e\u043c \u0441 \u0442\u0438\u043f\u043e\u043c Symbol, \u0442.\u0435. \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\/\u0444\u0443\u043d\u043a\u0446\u0438\u0438\/\u0442\u0438\u043f\u0430 *)<\/code><\/pre>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u0435\u043d, \u0442.\u0435. \u044d\u0442\u043e \u043d\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438 \u043e\u043d \u0434\u0430\u0436\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041d\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0431\u043b\u043e\u043a\u043d\u043e\u0442, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u044f \u0431\u0443\u0434\u0443 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0443\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0435\u0449\u0435 \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u0435\u043d \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u0438 6 \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u0435\u0431\u0435 \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0430\u0442\u043e\u043c\u044b \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u0430\u0442\u043e\u043c\u044b. \u0425\u043e\u0442\u044c \u0438 \u0432 \u0444\u0438\u0437\u0438\u043a\u0435 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u043e\u043c\u044b \u0435\u0449\u0435 \u043a\u0430\u043a \u0434\u0435\u043b\u044f\u0442\u0441\u044f, \u043d\u043e \u0432 WL \u043e\u043d\u0438, \u0443\u0432\u044b, \u043d\u0435\u0434\u0435\u043b\u0438\u043c\u044b. <\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u044f \u0431\u0443\u0434\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 WL, \u043d\u043e \u0437\u043d\u0430\u0439\u0442\u0435 &#8212; \u044f \u0438\u043c\u0435\u044e \u0432\u0432\u0438\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u043e\u043b\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0422.\u0435. <code>{1, 2, 3}<\/code> &#8212; \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0410 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <code>Point[{1, 2, 3}]<\/code> \u043f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 &#8212; \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u043a\u0438 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435, \u043d\u043e \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 WL &#8212; \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. <\/p>\n<p>\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u0432 \u044f\u0437\u044b\u043a\u0435 Wolfram \u043e\u0442\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#171;\u043a\u043e\u043b\u044e\u0447\u0438\u0445 \u0441\u043a\u043e\u0431\u043e\u0447\u0435\u043a&#187; <code>(**)<\/code>, \u0442.\u0435. \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u043c\u0438: <\/p>\n<pre><code class=\"haskell\">code[ (* \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 *) ] (* \u0435\u0449\u0435 \u043e\u0434\u043d\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 *)<\/code><\/pre>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h2>\u0427\u0435\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/h2>\n<p>\u0412 \u044f\u0437\u044b\u043a\u0435 Wolfram \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438. \u041f\u043e \u043f\u0440\u0430\u0432\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0410\u0411\u0421\u041e\u041b\u042e\u0422\u041d\u041e \u0412\u0421\u0415 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 Wolfram Langage \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438, \u043d\u043e \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e. \u041c\u044b \u0436\u0435 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u044f\u0432\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u0410 \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438. <\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h2>MatchQ<\/h2>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f &#8212; \u044d\u0442\u043e <code>MatchQ[expr, pattern]<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430 \u0432\u0442\u043e\u0440\u044b\u043c \u0448\u0430\u0431\u043b\u043e\u043d \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 \u0438\u0445. \u041f\u0440\u0438 \u0443\u0434\u0430\u0447\u043d\u043e\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>True<\/code>, \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043d\u0435 \u043c\u0430\u0442\u0447\u0430\u0442\u0441\u044f &#8212; <code>False<\/code>. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043b\u044e\u0431\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &#8212; \u044d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a <code>Equals<\/code>, \u0442.\u0435. \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u0418 \u0442\u0443\u0442 \u043c\u044b \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 Python, \u0433\u0434\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043b\u0441\u044f \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u043c \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 <code>case<\/code> \u0438\u0437 Python:<\/p>\n<pre><code class=\"python\">MatchQ[1, 1] (* => True *) MatchQ[{1, 2, 3}, {1, 2, 3}] (* => True*)<\/code><\/pre>\n<p>\u042f \u043c\u043e\u0433\u0443 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430 Python \u0432\u043e\u0442 \u0442\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>If<\/code>: <\/p>\n<pre><code class=\"haskell\">number = 1 If[MatchQ[number, 1],    Print[\"\u043e\u0434\u0438\u043d\"],    If[MatchQ[number, 2],      Print[\"\u0434\u0432\u0430\"]   ] ]<\/code><\/pre>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u0441\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e.. \u043f\u043e\u043a\u0430 \u043a\u043e\u0434 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 &#8212; \u044d\u0442\u043e \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0435\u043c\u043e, \u043d\u043e \u0443\u0436\u0435 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u043e. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430? <\/p>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h2>Switch<\/h2>\n<p>\u0414\u0430, \u043e\u043d\u0430 \u0435\u0441\u0442\u044c \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 <em>\u043f\u043e\u0447\u0442\u0438<\/em> \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <code>match\/case<\/code> \u0438\u0437 Python. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439: <\/p>\n<pre><code class=\"haskell\">Switch[expr,    pattern1,      result1,    pattern2,      result2 ]<\/code><\/pre>\n<p>\u0422.\u0435. \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#8212; \u044d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0434\u0430\u043b\u0435\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u0442\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 &#8212; \u044d\u0442\u043e \u0448\u0430\u0431\u043b\u043e\u043d, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e &#8212; \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e. \u041a\u0441\u0442\u0430\u0442\u0438 \u0433\u043e\u0432\u043e\u0440\u044f, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043a\u043e\u0434 \u0432\u044b\u0448\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u0435\u043d \u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e:<\/p>\n<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0432\u043e\u0434\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043c\u044b \u043f\u0440\u043e\u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e WL! \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c, \u0442\u043e \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u043a\u0430\u043a \u0435\u0441\u0442\u044c \u0432 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435. \u041a \u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c, \u0432\u0435\u0434\u044c WL &#8212; \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c \u0424\u041f \u043b\u044e\u0431\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442 &#8212; \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0432\u0435\u043d <code>Null<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u044f \u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0436\u0443, \u0430 \u043e\u043d \u0435\u0441\u0442\u044c.. <\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0412\u0441\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0447\u0430\u0442\u0430\u044e\u0442\u0441\u044f, \u0430 <code>N<\/code><\/figcaption><\/div>\n<\/figure>\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-362487","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362487","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=362487"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/362487\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=362487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=362487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=362487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}