ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช Nim 0.20

ื”ืชืจื—ืฉ ืฉื—ืจื•ืจ ืฉืคืช ืชื›ื ื•ืช ืžืขืจื›ืช ื ื™ื 0.20.0. ื”ืฉืคื” ืžืฉืชืžืฉืช ื‘ื”ืงืœื“ื” ืกื˜ื˜ื™ืช ื•ื ื•ืฆืจื” ืชื•ืš ืžื—ืฉื‘ื” ืขืœ Pascal, C++, Python ื•-Lisp. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ Nim ืžื•ืจื›ื‘ ืœื™ื™ืฆื•ื’ C, C++ ืื• JavaScript. ืœืื—ืจ ืžื›ืŸ, ืงื•ื“ ื”-C/C++ ื”ืžืชืงื‘ืœ ืžื•ืจื›ื‘ ืœืงื•ื‘ืฅ ื”ืคืขืœื” ื‘ืืžืฆืขื•ืช ื›ืœ ืžื”ื“ืจ ื–ืžื™ืŸ (clang, gcc, icc, Visual C++), ื”ืžืืคืฉืจ ืœืš ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ืงืจื•ื‘ื™ื ืœ-C, ืื ืœื ืœื•ืงื—ื™ื ื‘ื—ืฉื‘ื•ืŸ ืืช ืขืœื•ื™ื•ืช ื”ืจื™ืฆื” ืืกืคืŸ ื”ืืฉืคื”. ื‘ื“ื•ืžื” ืœืคื™ื™ืชื•ืŸ, ื ื™ื ืžืฉืชืžืฉ ื‘ื”ื–ื—ื” ื›ืžืคืจื™ื“ื™ ื‘ืœื•ืง. ื›ืœื™ื ื•ื™ื›ื•ืœื•ืช ืžื˜ื-ืชื›ื ื•ืช ืœื™ืฆื™ืจืช ืฉืคื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืชื—ื•ื (DSL) ื ืชืžื›ื™ื. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžืกื•ืคืง ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ื”ืžื”ื“ื•ืจื” ืฉืœ Nim 0.20 ื™ื›ื•ืœื” ืœื”ื™ื—ืฉื‘ ื›ืžื•ืขืžื“ืช ืœื’ืจืกื” ื”ื™ืฆื™ื‘ื” ื”ืจืืฉื•ื ื” ืฉืœ 1.0, ื”ื›ื•ืœืœืช ืžืกืคืจ ืฉื™ื ื•ื™ื™ื ืฉื•ื‘ืจื™ ื™ื›ื•ืœืช ืคืขื•ืœื” ื”ื“ื“ื™ืช ื”ื“ืจื•ืฉื™ื ืœื™ืฆื™ืจืช ื”ืขื ืฃ ื”ื™ืฆื™ื‘ ื”ืจืืฉื•ืŸ ืฉื™ื—ื™ื™ื‘ ืืช ืžืฆื‘ ื”ืฉืคื”. ื’ืจืกื” 1.0 ืžื•ืฆื’ืช ื›ื’ืจืกืช ืชืžื™ื›ื” ื™ืฆื™ื‘ื” ื•ืืจื•ื›ืช ื˜ื•ื•ื— ืฉืชื”ื™ื” ืžื•ื‘ื˜ื—ืช ืœืฉืžื•ืจ ืขืœ ืชืื™ืžื•ืช ืœืื—ื•ืจ ื‘ื—ืœืง ื”ืžื™ื•ืฆื‘ ืฉืœ ื”ืฉืคื”. ื‘ื ืคืจื“, ืœืงื•ืžืคื™ื™ืœืจ ื™ื”ื™ื” ื’ื ืžืฆื‘ ื ื™ืกื™ื•ื ื™ ื–ืžื™ืŸ ื‘ื• ื™ืคื•ืชื—ื• ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืฉืขืœื•ืœื•ืช ืœืฉื‘ื•ืจ ืืช ื”ืชืื™ืžื•ืช ืœืื—ื•ืจ.

ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื ื”ืžื•ืฆืขื™ื ื‘-Nim 0.20 ื”ื:

  • "ืœื" ื”ื•ื ืขื›ืฉื™ื• ืชืžื™ื“ ืื•ืคืจื˜ื•ืจ ืœื ืืจื™, ื›ืœื•ืžืจ. ื‘ื™ื˜ื•ื™ื™ื ื›ืžื• "assert(not a)" ืื™ื ื ืžื•ืชืจื™ื ื›ืขืช ื•ืจืง "assert not a" ืžื•ืชืจ;
  • ืืคืฉืจื• ื‘ื“ื™ืงื•ืช ืงืคื“ื ื™ื•ืช ืœื”ืžืจื” ืฉืœ ืžืกืคืจื™ื ืฉืœืžื™ื ื•ืžืกืคืจื™ื ืžืžืฉื™ื™ื ื‘ืฉืœื‘ ื”ืงื•ืžืคื™ืœืฆื™ื”, ื›ืœื•ืžืจ. ื”ื‘ื™ื˜ื•ื™ "const b = uint16(-1)" ื™ื’ืจื•ื ื›ืขืช ืœืฉื’ื™ืื”, ืžื›ื™ื•ื•ืŸ ืฉืœื ื ื™ืชืŸ ืœื”ืžื™ืจ -1 ืœืกื•ื’ ืžืกืคืจ ืฉืœื ืœืœื ืกื™ืžืŸ;
  • ื ื™ืชื ืช ืคื™ืจื•ืง ืฉืœ tuples ืขื‘ื•ืจ ืงื‘ื•ืขื™ื ื•ืžืฉืชื ื™ ืœื•ืœืื”.
    ืœื“ื•ื’ืžื”, ื›ืขืช ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื”ืงืฆืื•ืช ื›ืžื• 'const (d, e) = (7, "XNUMX")" ื•-"for (x, y) in f";

  • ืกื™ืคืง ืืชื—ื•ืœ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ hashes ื•ื˜ื‘ืœืื•ืช. ืœื“ื•ื’ืžื”, ืœืื—ืจ ื”ืฆื”ืจืช "var s: HashSet[int]" ืชื•ื›ืœ ืœื‘ืฆืข ืžื™ื“ ืืช "s.incl(5)", ืžื” ืฉื”ื•ื‘ื™ืœ ื‘ืขื‘ืจ ืœืฉื’ื™ืื”;
  • ืžื™ื“ืข ืฉื’ื™ืื” ืžืฉื•ืคืจ ืขื‘ื•ืจ ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืื•ืคืจื˜ื•ืจ "ื”ืžืงืจื”" ื•ืื™ื ื“ืงืก ื”ืžืขืจืš ืžื—ื•ืฅ ืœืชื—ื•ื;
  • ืฉื™ื ื•ื™ ืื•ืจืš ื”ื˜ื‘ืœื” ื‘ืžื”ืœืš ืื™ื˜ืจืฆื™ื” ืืกื•ืจ.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”