{"id":259083,"date":"2015-06-10T16:27:02","date_gmt":"2015-06-10T12:27:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=259083"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=259083","title":{"rendered":"\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c Nim \u0438 Rust"},"content":{"rendered":"<p>       <em>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/arthurtw.github.io\/2015\/01\/12\/quick-comparison-nim-vs-rust.html\">\u00abA Quick Comparison of Nim vs. Rust\u00bb<\/a>. \u041c\u043e\u0438 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u0443\u0440\u0441\u0438\u0432\u043e\u043c.<\/em><\/p>\n<p>  <a href=\"http:\/\/www.rust-lang.org\/\">Rust<\/a> \u0438 <a href=\"http:\/\/nim-lang.org\/\">Nim<\/a> \u2014 \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0441\u043b\u0435\u0436\u0443. \u0412\u0441\u043a\u043e\u0440\u0435, \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u0435\u0433\u043e <a href=\"http:\/\/arthurtw.github.io\/2014\/12\/21\/rust-anti-sloppy-programming-language.html\">\u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430<\/a> \u043e Rust, \u0432\u044b\u0448\u0435\u043b \u0432 \u0441\u0432\u0435\u0442 <a href=\"http:\/\/nim-lang.org\/news.html#Z2014-12-29-version-0-10-2-released\">Nim 0.10.2<\/a>. \u042d\u0442\u043e \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u043f\u043e\u0431\u043b\u0438\u0436\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 Nim \u0438, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441 Rust.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u0434\u0432\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 Nim \u0438 Rust \u0441 \u0433\u0440\u0443\u0431\u044b\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c \u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u043e\u0438 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u21161: \u041f\u043e\u0434\u0441\u0447\u0451\u0442 \u0441\u043b\u043e\u0432 (wordcount)<\/h2>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 I\/O, \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0445\u0435\u0448-\u0442\u0430\u0431\u043b\u0438\u0446\u044b (\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b) \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434\u0435. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u043e\u0433\u0440\u043c\u043c\u0430 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0438\u043b\u0438 <b>stdin<\/b>.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<pre><code>Usage: wordcount [OPTIONS] [FILES]  Options:     -o:NAME             set output file name     -i --ignore-case    ignore case     -h --help           print this help menu <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <b>-i<\/b>, \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<pre><code>2       case 1       file 1       files 1       h 2       help ... <\/code><\/pre>\n<h3>Nim \u0432\u0435\u0440\u0441\u0438\u044f<\/h3>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 Nim \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430. \u0412 \u043d\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f <a href=\"http:\/\/nim-lang.org\/docs\/tables.html#CountTable\">tables<\/a>.<b>CountTable<\/b> \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430 \u0441\u043b\u043e\u0432, <a href=\"http:\/\/nim-lang.org\/docs\/parseopt2.html\">parseopt2<\/a>.<b>getopt<\/b> \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 <a href=\"http:\/\/nim-lang.org\/docs\/sequtils.html\">sequtils<\/a>.<b>mapIt<\/b> \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044d\u043f\u043f\u0438\u043d\u0433\u0430. \u0414\u043b\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044f \u0432\u044b\u0431\u0440\u0430\u043b \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"http:\/\/nim-lang.org\/docs\/pegs.html\">pegs<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 Nim \u0437\u0430\u043c\u0435\u0441\u0442\u043e <a href=\"http:\/\/nim-lang.org\/docs\/re.html\">re<\/a>.<\/p>\n<p>  \u0414\u0435\u0440\u0435\u043a\u0442\u0438\u0432\u0430 <b>{.raises: [IOError].}<\/b> \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0435 3 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0447\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 <b>doWork<\/b> \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <b>IOError<\/b>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044f \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b <b>input.findAll(peg&quot;\\w+&quot;)<\/b> \u0432\u043d\u0443\u0442\u0440\u044c <b>try<\/b> \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 21 \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043b\u043e\u0432\u0438\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c.<\/p>\n<p>  \u0427\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 <a href=\"https:\/\/github.com\/arthurtw\/nim-examples\/blob\/master\/wordcount.nim\">wordcount.nim<\/a>:<\/p>\n<pre><code>proc doWork(inFilenames: seq[string] = nil,             outFilename: string = nil,             ignoreCase: bool = false) {.raises: [IOError].} =   # Open files   var     infiles: seq[File] = @[stdin]     outfile: File = stdout   if inFilenames != nil and inFilenames.len &gt; 0:     infiles = inFilenames.mapIt(File, (proc (filename: string): File =       if not open(result, filename):         raise newException(IOError, &quot;Failed to open file: &quot; & filename)     )(it))   if outFilename != nil and outFilename.len &gt; 0 and not open(outfile, outFilename, fmWrite):     raise newException(IOError, &quot;Failed to open file: &quot; & outFilename)    # Parse words   var counts = initCountTable[string]()   for infile in infiles:     for line in infile.lines:       let input = if ignoreCase: line.tolower() else: line       let words = try: input.findAll(peg&quot;\\w+&quot;) except: @[]       for word in words:         counts.inc(word)    # Write counts   var words = toSeq(counts.keys)   sort(words, cmp)   for word in words:     outfile.writeln(counts[word], '\\t', word) <\/code><\/pre>\n<h3>Rust \u0432\u0435\u0440\u0441\u0438\u044f<\/h3>\n<p>  \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f Rust \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <b>BTreeMap<\/b> \u0441\u0440\u043e\u0434\u043d\u0438 <b>collections::BTreeMap<\/b>, \u043d\u043e \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b <b>collections::HashMap<\/b> \u0434\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0433\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 Nim (\u043a\u043e\u0434 <b>BTreeMap<\/b> \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f). \u041f\u0430\u043a\u0435\u0442 <a href=\"http:\/\/doc.rust-lang.org\/getopts\/getopts\/index.html\">getopts<\/a> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432 \u043c\u043e\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <b>Config<\/b>. \u0414\u0430\u043b\u0435\u0435 \u0432\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e.<\/p>\n<p>  \u0427\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438\u0437 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/tree\/master\/wordcount\">Rust wordcount<\/a>:<\/p>\n<pre><code class=\"rust\">fn do_work(cfg: &config::Config) -&gt; io::Result&lt;()&gt; {     \/\/ Open input and output files     let mut readers = Vec::with_capacity(std::cmp::max(1, cfg.input.len()));     if cfg.input.is_empty() {         readers.push(BufReader::new(Box::new(io::stdin()) as Box&lt;Read&gt;));     } else {         for name in &cfg.input {             let file = try!(File::open(name));             readers.push(BufReader::new(Box::new(file) as Box&lt;Read&gt;));         }     }     let mut writer = match cfg.output {         Some(ref name) =&gt; {             let file = try!(File::create(name));             Box::new(BufWriter::new(file)) as Box&lt;Write&gt;         }         None =&gt; { Box::new(io::stdout()) as Box&lt;Write&gt; }     };      \/\/ Parse words     let mut map = collections::HashMap::&lt;String, u32&gt;::new();     let re = regex!(r&quot;\\w+&quot;);      \/\/ let re = Regex::new(r&quot;\\w+&quot;).unwrap();     \/\/ let re = regex!(r&quot;[a-zA-Z0-9_]+&quot;);     \/\/ let re = Regex::new(r&quot;[a-zA-Z0-9_]+&quot;).unwrap();     for reader in &mut readers {         for line in reader.lines() {             for caps in re.captures_iter(&line.unwrap()) {                 if let Some(cap) = caps.at(0) {                     let word = match cfg.ignore_case {                         true  =&gt; cap.to_ascii_lowercase(),                         false =&gt; cap.to_string(),                     };                     match map.entry(word) {                         Occupied(mut view) =&gt; { *view.get_mut() += 1; }                         Vacant(view) =&gt; { view.insert(1); }                     }                 }             }         }     }     \/\/ Write counts     let mut words: Vec&lt;&String&gt; = map.keys().collect();     words.sort();     for &word in &words {         if let Some(count) = map.get(word) {             try!(writeln!(writer, &quot;{}\\t{}&quot;, count, word));         }     }     Ok(()) } <\/code><\/pre>\n<p>  Zachary Dremann \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/pull\/1\/files\">pull request<\/a> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <b>find_iter<\/b>. \u042f \u043e\u0441\u0442\u0430\u0432\u0438\u043b <b>captures_iter<\/b> \u0434\u043b\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0441 Nim \u0432\u0435\u0440\u0441\u0438\u0435\u0439, \u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b \u0441\u0432\u043e\u0439 \u043a\u043e\u0434.<\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p>  \u042f \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043b \u043a\u043e\u0434 \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 <b>-d:release<\/b> \u0434\u043b\u044f Nim \u0438 <b>&#8212;release<\/b> \u0434\u043b\u044f Rust. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u0437\u044f\u043b \u0444\u0430\u0439\u043b \u0432 5 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b\u0439 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 Nim:<\/p>\n<pre><code>$ cat c_code\/3_3\/*.c &gt; \/tmp\/input.txt $ wc \/tmp\/input.txt   217898  593776 5503592 \/tmp\/input.txt <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b:<\/p>\n<pre><code>$ time .\/wordcount -i -o:result.txt input.txt <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430 \u043c\u043e\u0451\u043c Mac mini \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c 2.3 GHz Intel Core i7 \u0438 \u043f\u0430\u043c\u044f\u0442\u044c\u044e 8 GB: (1x = 0.88 \u0441\u0435\u043a\u0443\u043d\u0434\u044b)<\/p>\n<table>\n<tr>\n<td>Rust<\/td>\n<td>regex! \\w<\/td>\n<td>Regex \\w<\/td>\n<td>regex! [\u2026]<\/td>\n<td>Regex [\u2026]<\/td>\n<td>Nim<\/td>\n<\/tr>\n<tr>\n<td>release, -i<\/td>\n<td>1x<\/td>\n<td>1.30x<\/td>\n<td>0.44x<\/td>\n<td>1.14x<\/td>\n<td>0.75x<\/td>\n<\/tr>\n<tr>\n<td>release<\/td>\n<td>1.07x<\/td>\n<td>1.33x<\/td>\n<td>0.50x<\/td>\n<td>1.24x<\/td>\n<td>0.73x<\/td>\n<\/tr>\n<tr>\n<td>debug, -i<\/td>\n<td>12.65x<\/td>\n<td>20.14x<\/td>\n<td>8.77x<\/td>\n<td>19.42x<\/td>\n<td>3.51x<\/td>\n<\/tr>\n<tr>\n<td>debug<\/td>\n<td>12.41x<\/td>\n<td>20.09x<\/td>\n<td>8.84x<\/td>\n<td>19.33x<\/td>\n<td>3.25x<\/td>\n<\/tr>\n<\/table>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f:  <\/p>\n<ol>\n<li> \u0412 Rust <b>regex!<\/b> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c <b>Regex<\/b>, \u0438 <b>r&quot;[a-zA-Z0-9_]+&quot;<\/b> \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c <b>r&quot;\\w+&quot;<\/b>. \u0412\u0441\u0435 4 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b.   <\/li>\n<li> \u0412\u0435\u0440\u0441\u0438\u044f \u00abdebug\u00bb \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f   <\/li>\n<li> Nim \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 1-2% \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c <b>&#8212;boundChecks:on<\/b>, \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440.   <\/li>\n<\/ol>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u21162: \u0418\u0433\u0440\u0430 \u00ab\u0416\u0438\u0437\u043d\u044c\u00bb<\/h2>\n<p>  \u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%96%D0%B8%D0%B7%D0%BD%D1%8C_(%D0%B8%D0%B3%D1%80%D0%B0)\">\u00ab\u0416\u0438\u0437\u043d\u044c\u00bb<\/a> \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0435 \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u043b\u044f \u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c (\u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434). \u0412 \u043d\u0451\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435_\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438_ANSI\">ANSI CSI<\/a> \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0440\u0430\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). . . (). . . . . . . . . . . . . . . . . . . . . . . . . (). . . . . . . (). . . . . . . . . . . . ()(). . . . . . . . . . . . . . ()()()(). . . . (). . . . (). . . . . . . . ()(). . ()(). . . . . . . . . ()(). (). (). . . . (). . . . . . . . . . . . . . . . ()(). . . . . . . . ()()(). (). . (). . . (). . . (). . . . . . . . . . . . . . . . . . . . . . . ()(). (). (). . . . . . (). (). . . . . . . . . . . . . . . . . . . . . . . . ()()()(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ()(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ()()(). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . n = 300   Press ENTER to exit <\/code><\/pre>\n<p>  \u041f\u0440\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0442\u043e\u043a \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u0437 <b>stdin<\/b> \u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0433\u0440\u0443 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430.<\/p>\n<h3>Nim \u0432\u0435\u0440\u0441\u0438\u044f<\/h3>\n<p>  \u0412\u043e\u0442 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438\u0437 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/arthurtw\/nim-examples\/tree\/master\/conway\">Nim conway<\/a>:<\/p>\n<pre><code>type   Cell = bool   ConwayMap* = array[0.. &lt;mapHeight, array[0.. &lt;mapWidth, Cell]]  proc init*(map: var ConwayMap, pattern: openarray[string]) =   ## Initialise the map.   let     ix = min(mapWidth, max(@pattern.mapIt(int, it.len)))     iy = min(mapHeight, pattern.len)     dx = int((mapWidth - ix) \/ 2)     dy = int((mapHeight - iy) \/ 2)   for y in 0.. &lt;iy:     for x in 0.. &lt;ix:       if x &lt; pattern[y].len and pattern[y][x] notin Whitespace:         map[y + dy][x + dx] = true  proc print*(map: ConwayMap) =   ## Display the map.   ansi.csi(AnsiOp.Clear)   ansi.csi(AnsiOp.CursorPos, 1, 1)   for row in map:     for cell in row:       let s = if cell: &quot;()&quot; else: &quot;. &quot;       stdout.write(s)     stdout.write(&quot;\\n&quot;)  proc next*(map: var ConwayMap) =   ## Iterate to next state.   let oldmap = map   for i in 0.. &lt;mapHeight:     for j in 0.. &lt;mapWidth:       var nlive = 0       for i2 in max(i-1, 0)..min(i+1, mapHeight-1):         for j2 in max(j-1, 0)..min(j+1, mapWidth-1):           if oldmap[i2][j2] and (i2 != i or j2 != j): inc nlive       if map[i][j]: map[i][j] = nlive &gt;= 2 and nlive &lt;= 3       else: map[i][j] = nlive == 3 <\/code><\/pre>\n<h3>Rust \u0432\u0435\u0440\u0441\u0438\u044f<\/h3>\n<p>  \u0412\u043e\u0442 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0438\u0437 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/tree\/master\/conway\">Rust conway<\/a>:<\/p>\n<pre><code class=\"rust\">type Cell = bool;  #[derive(Copy)] pub struct Conway {     map: [[Cell; MAP_WIDTH]; MAP_HEIGHT], }  impl Conway {     pub fn new() -&gt; Conway {         Conway {             map: [[false; MAP_WIDTH]; MAP_HEIGHT],         }     }      pub fn init(&mut self, pattern: &[&str]) {         let h = pattern.len();         let h0 = (MAP_HEIGHT - h) \/ 2;         for i in 0..(h) {             let row = pattern[i];             let w = row.len();             let w0 = (MAP_WIDTH - w) \/ 2;             for (j, c) in row.chars().enumerate() {                 self.map[i + h0][j + w0] = c == '1';             }         }     }      \/\/\/ Iterate to next state. Return false if the state remains unchanged.     pub fn next(&mut self) -&gt; bool {         let mut newmap = [[false; MAP_WIDTH]; MAP_HEIGHT];         for i in 0..(MAP_HEIGHT) {             for j in 0..(MAP_WIDTH) {                 let mut nlive = 0;                 for i2 in i.saturating_sub(1)..cmp::min(i+2, MAP_HEIGHT) {                     for j2 in j.saturating_sub(1)..cmp::min(j+2, MAP_WIDTH) {                         if self.map[i2][j2] && (i2 != i || j2 != j) {                             nlive += 1;                         }                     }                 }                 newmap[i][j] = match (self.map[i][j], nlive) {                     (true, 2) | (true, 3) =&gt; true,                     (true, _) =&gt; false,                     (false, 3) =&gt; true,                     (false, _) =&gt; false,                 };             }         }         \/\/ let changed = self.map != newmap;         let changed = true;         self.map = newmap;         changed     } }  impl fmt::Display for Conway {     fn fmt(&self, f: &mut fmt::Formatter) -&gt; fmt::Result {         for row in self.map.iter() {             for cell in row.iter() {                 try!(write!(f, &quot;{}&quot;, if *cell { &quot;()&quot; } else { &quot;. &quot; }));             }             try!(write!(f, &quot;\\n&quot;));         }         Ok(())     } } <\/code><\/pre>\n<p>  \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 49 \u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 <b>self.map != newmap<\/b> \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0431\u043e\u043b\u0435\u0435 32 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u043a\u0430 \u0432\u044b \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0435 \u0442\u0440\u0435\u0439\u0442 <b>PartialEq<\/b>.<\/p>\n<p>  \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 <b>libc::exit<\/b> \u0432 \u043c\u043e\u0451\u043c <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/blob\/master\/conway\/src\/main.rs#L23\">main.rs<\/a>, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043d\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e \u0434\u043b\u044f Rust. Zachary Dremann \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/pull\/2\/files\">pull request<\/a> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u0442\u0441\u044f <b>libc::exit<\/b> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u0430 <b>select!<\/b> \u0438 \u043d\u0435\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p>  \u0414\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u0435:<\/p>\n<ol>\n<li> \u0417\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432 sleep \u0432 <a href=\"https:\/\/github.com\/arthurtw\/nim-examples\/blob\/master\/conway\/conway.nim#L31\">conway.nim<\/a> \u0438<br \/>   <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/blob\/master\/conway\/src\/main.rs#L37\">main.rs<\/a>   <\/li>\n<li> \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0446\u0438\u043a\u043b\u0430 \u0441 300 \u0434\u043e 3000   <\/li>\n<li> \u041f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u043a\u0430 \u043f\u043e\u043b\u044f \u0442\u0440\u0430\u0442\u0438\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u0432\u0430 \u0437\u0430\u043c\u0435\u0440\u0430 (1) \u0441 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u043a\u043e\u0439 \u0438 (2) \u0431\u0435\u0437 \u043d\u0435\u0451 (\u0442.\u0435. \u0441 \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u043f\u043e\u043b\u044f \u043d\u0430 \u043f\u0435\u0447\u0430\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/arthurtw\/nim-examples\/blob\/master\/conway\/conway.nim#L29\">conway.nim<\/a> \u0438 <a href=\"https:\/\/github.com\/arthurtw\/rust-examples\/blob\/master\/conway\/src\/main.rs#L34,L35\">main.rs<\/a>)   <\/li>\n<\/ol>\n<p>  \u0412\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 <b>-d:release<\/b> \u0434\u043b\u044f Nim \u0438 <b>&#8212;release<\/b> \u0434\u043b\u044f Rust:<\/p>\n<table>\n<tr>\n<td><\/td>\n<td>Rust<\/td>\n<td>Nim<\/td>\n<td>Nim\/bc:on<\/td>\n<td>n=30000<\/td>\n<\/tr>\n<tr>\n<td>(1) with map print<\/td>\n<td>1x<\/td>\n<td>1.75x<\/td>\n<td>1.87x<\/td>\n<td>1x=3.33s<\/td>\n<\/tr>\n<tr>\n<td>(2) without map print<\/td>\n<td>1x<\/td>\n<td>1.15x<\/td>\n<td>1.72x<\/td>\n<td>1x=0.78<\/td>\n<\/tr>\n<\/table>\n<p>  \u0422.\u043a. Rust \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u043f\u0438\u0441\u043a\u0430, \u0434\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u043e\u043b\u043e\u043d\u043a\u0443 <b>Nim\/bc:on<\/b> \u0434\u043b\u044f Nim \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441 \u0444\u043b\u0430\u0433\u043e\u043c <b>&#8212;boundChecks:on<\/b>.<\/p>\n<h2>Nim \u0438\u043b\u0438 Rust<\/h2>\n<p>  \u0425\u043e\u0442\u044c Nim \u0438 Rust \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u0441 \u0440\u0430\u0441\u0441\u0447\u0451\u0442\u043e\u043c \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0435. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0438\u0445 \u0441\u0445\u043e\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<ul>\n<li> \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0438\u043f\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435   <\/li>\n<li> \u0440\u0430\u0441\u0441\u0447\u0451\u0442 \u043d\u0430 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0435\u0451 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439)   <\/li>\n<li> \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f (\u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u0442\u0440\u0435\u043d\u0434 \u0432 \u043d\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445?)   <\/li>\n<li> \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0441\u0432\u044f\u0437\u043a\u0430 \u0441 \u0421\u0438   <\/li>\n<li> \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043b\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430: \u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u0438, \u0437\u0430\u043c\u044b\u043a\u0430\u043d\u0438\u044f, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0432\u044b\u0432\u043e\u0434 \u0442\u0438\u043f\u043e\u0432, \u043c\u0430\u043a\u0440\u043e\u0441\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0438 \u0442.\u0434.   <\/li>\n<\/ul>\n<p>  \u041d\u043e \u0438\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b.<\/p>\n<h3>\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f: \u0441\u0432\u043e\u0431\u043e\u0434\u0430 \u0438\u043b\u0438 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0430<\/h3>\n<p>  \u041f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 Nim \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435 \u0447\u0442\u043e \u043f\u0438\u0448\u0435\u0448\u044c \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u043e\u043c \u044f\u0437\u044b\u043a\u0435. \u041e\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0442\u0438\u0440\u0430\u0435\u0442 \u0433\u0440\u0430\u043d\u044c. Nim \u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0448\u0443\u043c\u0430 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0451\u043c \u0432 \u0440\u0430\u0434\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0443 \u0442\u0430\u043a\u043e\u0439 \u0441\u0432\u043e\u0431\u043e\u0434\u044b: \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u0442\u044c \u044f\u0441\u043d\u043e\u0441\u0442\u044c, \u0447\u0438\u0441\u0442\u043e\u0442\u0430 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u044c. \u0412\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0432 Nim <b>import<\/b> \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u043c\u043e\u0434\u0443\u043b\u044f \u0432 \u0432\u0430\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d. \u0418\u043c\u0435\u043d\u0430 \u0438\u0437 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <b>module.symbol<\/b> \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <b>from module import nil<\/b> \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u043d\u043e, \u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u043d\u0435, \u043a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f? \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043d\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0435\u043d \u0434\u043b\u044f Nim. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430 \u043f\u0440\u0438\u0448\u043b\u0438 \u0438\u0437 \u043a\u0430\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0447\u0443\u0436\u043e\u0433\u043e (\u0438\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e) \u043a\u043e\u0434\u0430 (\u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0439 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0439 \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0442.\u043a. \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 Nim \u0437\u0430\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044f\u0442\u044c \u043c\u0443\u0445 \u043e\u0442 \u043a\u043e\u0442\u043b\u0435\u0442).<\/p>\n<p>  \u0415\u0449\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u044b: <a href=\"http:\/\/en.wikipedia.org\/wiki\/Uniform_Function_Call_Syntax\">UFCS<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <b>len(x)<\/b>, <b>len x<\/b>, <b>x.len()<\/b> \u0438\u043b\u0438 <b>x.len<\/b> \u043a\u0430\u043a \u0432\u0430\u043c \u0432\u0437\u0434\u0443\u043c\u0430\u0435\u0442\u0441\u044f; \u043d\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u0435\u043d\u0430 \u0441 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0440\u0430\u0437\u043d\u044b\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u043c, \u0442\u0430\u043a <b>mapWidth<\/b>, <b>mapwidth<\/b> \u0438 <b>map_width<\/b> \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 \u0438\u043c\u044f (\u044f \u0440\u0430\u0434 \u0447\u0442\u043e \u043e\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u00ab\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443\u00bb \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 0.10.2, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <b>Foo<\/b> \u0438 <b>foo<\/b> \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438); \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u0435\u0449\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 Nim \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043a\u043e\u0432\u0430\u043d\u043d\u043e.<\/p>\n<p>  \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, Rust \u0447\u0442\u0438\u0442 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0443. \u0415\u0433\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0440\u043e\u0433\u0438\u0439. \u0412\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u044f\u0441\u043d\u043e. \u0412\u044b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b. \u041d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e \u043a\u043e\u0434 \u043d\u0430 Rust\u2026<br \/>  \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0445\u043e\u0440\u043e\u0448 \u0434\u043b\u044f \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u0438, \u043d\u043e \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 Rust \u0432\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0437\u0430\u0431\u043e\u0442\u0438\u0442\u044c\u0441\u044f \u043e \u0442\u0430\u043a\u0438\u0445 \u0434\u0435\u0442\u0430\u043b\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b. \u0412\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438\u043b\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. Rust \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0430\u0441 \u0431\u043e\u043b\u0435\u0435 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c.<\/p>\n<p>  \u041e\u0431\u0430 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u0438 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u041a\u0430\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442, \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u044e\u0441\u044c \u043e\u0442 Nim; \u043a\u0430\u043a \u043c\u0430\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u044f \u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u043b \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 Rust.<\/p>\n<h3>\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c: Python \u0438\u043b\u0438 C++<\/h3>\n<p>  \u041a\u0430\u043a \u0438 Python, Nim \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u043e\u0432 \u043a\u043e\u0434\u0430 \u0438 \u0432 \u043d\u0451\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0441\u044f\u043a\u0438\u0445 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Sigil_(computer_programming)\">\u0437\u043d\u0430\u043a\u043e\u0432<\/a>. Rust \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 C++. <b>{}<\/b>, <b>::<\/b>, <b>&lt;&gt;<\/b> \u0438 <b>&amp;<\/b> \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u044b C++ \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c, \u043f\u043b\u044e\u0441 Rust \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0449\u0438 \u0432\u0440\u043e\u0434\u0435 <b>&#8216;a<\/b>.<\/p>\n<p>  \u0418\u043d\u043e\u0433\u0434\u0430 Nim \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u044b\u043c. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u044f \u0434\u0443\u043c\u0430\u044e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <b>match<\/b> \u0432 Rust:<\/p>\n<pre><code class=\"rust\">match key.cmp(&node.key) {     Less    =&gt; return insert(&mut node.left, key, value),     Greater =&gt; return insert(&mut node.right, key, value),     Equal   =&gt; node.value = value, } <\/code><\/pre>\n<p>  \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0447\u0438\u0449\u0435, \u0447\u0435\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 <b>case<\/b> \u0432 Nim:<\/p>\n<pre><code>case key of &quot;help&quot;, &quot;h&quot;: echo usageString of &quot;ignore-case&quot;, &quot;i&quot;: ignoreCase = true of &quot;o&quot;: outFilename = val else: discard <\/code><\/pre>\n<p>  \u041d\u043e, \u0432 \u0446\u0435\u043b\u043e\u043c, \u043a\u043e\u0434 \u043d\u0430 Nim \u043c\u0435\u043d\u0435\u0435 \u0437\u0430\u0448\u0443\u043c\u043b\u0435\u043d. \u041f\u043e \u043c\u043e\u0435\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u044b\u0439 \u0431\u0435\u0441\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 Rust \u0432\u043d\u043e\u0441\u044f\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 <em>(lifetime parameters)<\/em> \u0438 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.<\/p>\n<h3>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e: \u0421\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043f\u0440\u043e\u0442\u0438\u0432 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/h3>\n<p>  \u0425\u043e\u0442\u044c Nim \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u043c \u043c\u0443\u0441\u043e\u0440\u0430 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u044b\u043c\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0432\u0441\u0451 \u0435\u0449\u0451 \u044f\u0437\u044b\u043a \u0441\u043e \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u043e\u043c \u043c\u0443\u0441\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0432\u0441\u0435\u043c\u0438 \u043f\u043b\u044e\u0441\u0430\u043c\u0438 \u0438 \u043c\u0438\u043d\u0443\u0441\u0430\u043c\u0438 \u043e\u0442 \u043d\u0435\u0433\u043e. \u041e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0432 Nim \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u0435\u0442, \u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0432 Nim \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0443 \u0432\u0430\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c.<\/p>\n<p>  Rust \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u043e\u0431\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430, \u043d\u043e \u0447\u0430\u0449\u0435 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 <a href=\"https:\/\/doc.rust-lang.org\/stable\/book\/ownership.html\">\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f<\/a> \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u0411\u0443\u0434\u0443\u0447\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c \u043d\u0430 Rust \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0435\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e (\u0432\u043b\u0430\u0434\u0435\u043d\u0438\u0435, \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438) \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0432\u044b \u043d\u0430\u0447\u043d\u0451\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u044b, \u0447\u0442\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0431\u0430\u0440\u044c\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432.<\/p>\n<p>  \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0432 \u044d\u0442\u043e\u043c \u0436\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0441\u0438\u043b\u0430 Rust \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430. Rust \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439. \u041d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0445 \u0440\u0435\u0441\u0440\u0443\u0441\u043e\u0432, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c null \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 Rust \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435.<\/p>\n<p>  \u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0430\u0448\u0438\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439, \u043b\u0438\u0431\u043e \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430 Nim, \u043b\u0438\u0431\u043e \u0432\u0430\u0448 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u0434\u0451\u0442 \u043d\u0430 Rust.<\/p>\n<h2>\u0414\u0440\u0443\u0433\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f<\/h2>\n<p>  \u0421\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b Nim:<\/p>\n<ol>\n<li>\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c: \u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u044b \u0437\u0430\u043f\u0438\u043b\u0438\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 Nim<\/li>\n<li>\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438<\/li>\n<li>\u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u044b\u0439, \u0445\u043e\u0440\u043e\u0448 \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u0438\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442.\u0434<\/li>\n<li>\u0424\u0438\u0448\u0435\u0447\u043a\u0438:<br \/> \n<ul>\n<li>\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/li>\n<li>\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0435\u0430\u0442\u043e\u0440\u043e\u0432<\/li>\n<li>\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/li>\n<li>\u043c\u043e\u0449\u043d\u044b\u0435 \u043c\u0430\u043a\u0440\u043e\u0441\u044b<\/li>\n<\/ul>\n<p>   <\/li>\n<\/ol>\n<p>  \u0421\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b Rust:<\/p>\n<ol>\n<li>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0439, \u0431\u0435\u0437 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Bare_machine\">\u0431\u043b\u0438\u0437\u043e\u043a \u043a \u0436\u0435\u043b\u0435\u0437\u0443<\/a><\/li>\n<li>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439, \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0439, \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439<\/li>\n<li>\u0421\u0438\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u044f\u0434\u0440\u0430 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e<\/li>\n<li>\u0424\u0438\u0448\u0435\u0447\u043a\u0438:<br \/> \n<ul>\n<li>\u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c <em>(pattern matching)<\/em><\/li>\n<li>\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f <em>(enum)<\/em>, \u0445\u043e\u0442\u044f \u0432 Nim \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0438<\/li>\n<li><b>let mut<\/b> \u0432\u043c\u0435\u0441\u0442\u043e <b>var<\/b> (\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f, \u043d\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u0432\u0435\u0449\u044c)<\/li>\n<li>\u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/li>\n<\/ul>\n<p>   <\/li>\n<\/ol>\n<p>  \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a: \u0432 Nim \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439, Rust \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u0442\u0438\u043f <b>Result<\/b> (\u0438 \u043c\u0430\u043a\u0440\u043e\u0441 <b>panic!<\/b>). \u0423 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0439 \u0432 \u044d\u0442\u043e\u043c, \u043d\u043e \u044f \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043b \u0432\u0430\u0436\u043d\u044b\u043c \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u044d\u0442\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435.<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437 1.0 \u043d\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0435<\/h2>\n<p>  Nim \u0438 Rust \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0440\u0435\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443 (Rust <a href=\"http:\/\/habrahabr.ru\/post\/258069\/\">\u0437\u0430\u0440\u0435\u043b\u0438\u0437\u0438\u043b\u0441\u044f<\/a>). \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u043e! Rust \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043d\u043e \u0438 Nim \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c. \u041e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0430 \u0432\u043a\u0443\u0441, \u043d\u043e \u043e\u0431\u0430 \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. Rust \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0431\u044f \u0441 \u043b\u0443\u0447\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. Nim \u043f\u0440\u043e\u0432\u043e\u0440\u043d\u044b\u0439 <em>(\u0438\u0433\u0440\u0430 \u0441\u043b\u043e\u0432: Nim is nimble)<\/em>, \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u044b\u0445 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041e\u043d\u0438 \u043e\u0431\u0430 \u0441\u0442\u0430\u043d\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f.<\/p>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u0432\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0451 \u043c\u043d\u0435\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.   \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/259993\/\"> http:\/\/habrahabr.ru\/post\/259993\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <em>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u00ab\u0425\u0430\u0431\u0440\u0430\u0445\u0430\u0431\u0440\u0430\u00bb \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/arthurtw.github.io\/2015\/01\/12\/quick-comparison-nim-vs-rust.html\">\u00abA Quick Comparison of Nim vs. Rust\u00bb<\/a>. \u041c\u043e\u0438 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u0443\u0440\u0441\u0438\u0432\u043e\u043c.<\/em><\/p>\n<p>  <a href=\"http:\/\/www.rust-lang.org\/\">Rust<\/a> \u0438 <a href=\"http:\/\/nim-lang.org\/\">Nim<\/a> \u2014 \u0434\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u0441\u043b\u0435\u0436\u0443. \u0412\u0441\u043a\u043e\u0440\u0435, \u043f\u043e\u0441\u043b\u0435 \u043c\u043e\u0435\u0433\u043e <a href=\"http:\/\/arthurtw.github.io\/2014\/12\/21\/rust-anti-sloppy-programming-language.html\">\u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430<\/a> \u043e Rust, \u0432\u044b\u0448\u0435\u043b \u0432 \u0441\u0432\u0435\u0442 <a href=\"http:\/\/nim-lang.org\/news.html#Z2014-12-29-version-0-10-2-released\">Nim 0.10.2<\/a>. \u042d\u0442\u043e \u043f\u043e\u0431\u0443\u0434\u0438\u043b\u043e \u043c\u0435\u043d\u044f \u043f\u043e\u0431\u043b\u0438\u0436\u0435 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 Nim \u0438, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0441 Rust.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u044f \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u0434\u0432\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 Nim \u0438 Rust \u0441 \u0433\u0440\u0443\u0431\u044b\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\u043c \u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u043e\u0438 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445.<\/p>\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-259083","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/259083","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=259083"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/259083\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=259083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=259083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=259083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}