เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Nim 0.20 เบฅเบธเป‰เบ™เปƒเปเปˆ

เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™ เบเบฒเบ™เบ›เปˆเบญเบเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบฅเบฐเบšเบปเบš เบ™เบดเบก 0.20.0. เบžเบฒเบชเบฒเบ—เบตเปˆเปƒเบŠเป‰เบเบฒเบ™เบžเบดเบกเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ เปเบฅเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ”เป‰เบงเบ Pascal, C++, Python เปเบฅเบฐ Lisp เบขเบนเปˆเปƒเบ™เปƒเบˆ. เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ Nim เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ›เบฑเบ™ C, C ++, เบซเบผเบทเบเบฒเบ™เบชเบฐเปเบ”เบ‡ JavaScript. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ” C / C ++ เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ compiler เปƒเบ”เป†เบ—เบตเปˆเบกเบตเบขเบนเปˆ (clang, gcc, icc, Visual C ++), เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบเป‰เบเบฑเบš C, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบ„เบปเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Python, Nim เปƒเบŠเป‰เบเบฒเบ™เบซเบเปเป‰เปœเป‰เบฒเป€เบ›เบฑเบ™เบ•เบปเบงเบ‚เบฑเป‰เบ™เบšเบฅเบฑเบญเบ. เป€เบ„เบทเปˆเบญเบ‡เบกเบท Metaprogramming เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบžเบฒเบชเบฒเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เป€เบกเบ™ (DSLs) เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™. เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™ เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰ เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT.

เบเบฒเบ™เบ›เปˆเบญเบ Nim 0.20 เบชเบฒเบกเบฒเบ”เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ›เบฑเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบญเบ 1.0 เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเปเบ•เบเบซเบฑเบ interoperability-breaking เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบชเบฒเบ‚เบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบžเบฒเบชเบฒ. เป€เบงเบตเบŠเบฑเปˆเบ™ 1.0 เป„เบ”เป‰เบ–เบทเบเบเบปเบเบเป‰เบญเบ‡เบงเปˆเบฒเป€เบ›เบฑเบ™เบฅเบธเป‰เบ™เบชเบฐเปœเบฑเบšเบชเบฐเปœเบธเบ™เปƒเบ™เป„เบฅเบเบฐเบเบฒเบงเบ—เบตเปˆเปเบฑเป‰เบ™เบ„เบปเบ‡, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปƒเบ™เบเบฒเบ™เบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบผเบฑเบ‡เปƒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบžเบฒเบชเบฒ. เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, compiler เบเบฑเบ‡เบˆเบฐเบกเบตเป‚เบซเบกเบ”เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบซเบกเปˆเบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ—เปเบฒเบฅเบฒเบเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™เบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡เบˆเบฐเบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ.

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเปƒเบ™ Nim 0.20 เปเบกเปˆเบ™:

  • "เบšเปเปˆ" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ unary เบชเบฐเป€เบซเบกเบต, i.e. เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเป€เบŠเบฑเปˆเบ™ โ€œเบขเบทเบ™เบขเบฑเบ™ (เบšเปเปˆเป€เบ›เบฑเบ™)โ€ เบ•เบญเบ™เบ™เบตเป‰เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ” เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆ โ€œเบขเบทเบ™เบขเบฑเบ™เบšเปเปˆเป€เบ›เบฑเบ™โ€ เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰;
  • เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก, i.e. เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ "const b = uint16(-1)" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ -1 เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™;
  • เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบ‚เบญเบ‡ tuples เบชเปเบฒเบฅเบฑเบšเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบ•เบปเบงเปเบ› loop เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰.
    เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเป€เบŠเบฑเปˆเบ™ 'const (d, e) = (7, "eight")" เปเบฅเบฐ "for (x, y) in f";

  • เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ hashes เปเบฅเบฐเบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบเบฒเบ” "var s: HashSet[int]" เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ” "s.incl(5)" เบ—เบฑเบ™เบ—เบต, เป€เบŠเบดเปˆเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "เบเปเบฅเบฐเบ™เบต" เปเบฅเบฐเบ”เบฑเบ”เบชเบฐเบ™เบต array เบญเบญเบเบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”;
  • เบซเป‰เบฒเบกเบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เบณ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™