ืืืืจ ืฉื ื ืฉื ืคืืชืื, ืืฆื ืืืืจ ืฉืคืช ืืชืื ืืช ืืืขืจืืชืืช Nim 1.6, ืืืฉืชืืฉืช ืืืงืืื ืกืืืืช ืื ืืฆืจื ืขื ืขืื ืขื Pascal, C++, Python ื-Lisp. ืงืื ืืืงืืจ ืฉื Nim ืืืจืื ืืืืฆืื C, C++ ืื JavaScript. ืืืืจ ืืื, ืงืื ื-C/C++ ืืืชืงืื ืืืจืื ืืงืืืฅ ืืคืขืื ืืืืฆืขืืช ืื ืืืืจ ืืืื (clang, gcc, icc, Visual C++), ืืืืคืฉืจ ืื ืืืฉืื ืืืฆืืขืื ืงืจืืืื ื-C, ืื ืื ืืืงืืื ืืืฉืืื ืืช ืขืืืืืช ืืจืืฆื ืืกืคื ืืืฉืคื. ืืืืื ืืคืืืชืื, ื ืื ืืฉืชืืฉ ืืืืื ืืืคืจืืื ืืืืง. ืืืื ืืืืืืืช ืืื-ืชืื ืืช ืืืฆืืจืช ืฉืคืืช ืกืคืฆืืคืืืช ืืชืืื (DSL) ื ืชืืืื. ืงืื ืืคืจืืืงื ืืกืืคืง ืชืืช ืจืืฉืืื MIT.
ืฉืื ืืืื ืืืืืื ืืืืืืจื ืืืืฉื ืืืืืื:
- ืืืกืคื ืืช ืืืืืงื iterable[T] ืขื ืืืืืฉ ืกืื ืขืืืจ ืืืืจืืืจืื. template sum[T](a: iterable[T]): T = var result: T for ai in a: result += ai result assert sum(iota(3)) == 0 + 1 + 2 # ืื 'iota( 3).sum'
- ื ืืกืคื ืชืืืื ื ืืกืืื ืืช ืืืขืจืืช ".effectsOf" ืืืืฉืื ืืคืงืืื ืกืืงืืืื. when defined(nimHasEffectsOf): {.experimental: "strictEffects".} ืืืจ: {.pragma: effectsOf.} proc mysort(s: seq; cmp: proc(a, b: T): int) {.effectsOf: cmp. }
- ืืืฆืข ืชืืืืจ ืืืืื โโืืืฉ "import foo {.all.}", ืืืืคืฉืจ ืื ืืืืื ืื ืจืง ืกืืืื ืฆืืืืจืืื, ืืื ืื ืคืจืืืื. ืืื ืืืฉืช ืืฉืืืช ืคืจืืืื ืฉื ืืืืืืงืืื, ื ืืกืคื ืืืืื std/importutils ื-privateAccess API. ืืืขืจืืช {.all.} ืืืขืจืืช2 ืืืืื โโืืคืก ืื ืืขืจืืช2. ThisIsSystem import os {.all.} echo weirdTarget
- ื ืืกืคื ืชืืืื ื ืืกืืื ืืช ืืืืคืจืืืจื ื ืงืืืืช, ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืื ืืืืฉื ืฉืืืช ืืื ืืืื. ืืืืื โโืชืื ืืช std/json '.?'(a: JsonNode, b: untyped{ident}): JsonNode = a[astToStr(b)] ืชื j = %*{โa1โ: {โa2โ: 10}} ืืงืืืข j.?a1.?a2.getInt == 10
- ื ืืชื ืืฆืืื ืคืจืืืจืื ื ืืกืคืื ืืืจืืืื ืืื ืฉื ืืืืง. ืชืื ืืช fn(a = 1, b = 2, body1, body2) = discard fn(a = 1): bar1 do: bar2
- ืืืืืขื ืชืืืื ืืืืืืืื ืืืืืืจืื ืขื ืืื ืืฉืชืืฉ (ืืืืืื, "-128'bignum'"). func `'big`*(num: cstring): JsBigInt {.importjs: "BigInt(#)".} assert 0xffffffffffffff'big == (1'big shl 64'big) - 1'big
- ืืืืืจ ืืืืฉื ืืช ืืคืงืืื "-eval:cmd" ืืื ืืืคืขืื ืืฉืืจืืช ืคืงืืืืช ื ืื ืืฉืืจืช ืืคืงืืื, ืืืฉื 'nim -eval:"echo 1"'.
- ืกืืคืง ืชืืืื ืืืฆืืจืช ืืจืืืืช ืืฉืื ืขืืืจ ื-Nimscript backend.
- ืืืืขืืช ืืฉืืืื ืืืจืืื ืืืื ืืื ืืืฆืื ืืช ืืืงืฉืจ ืืืฉืืื ืืฉืืืื. ืืืืข ืืืืจืืช ืืืืจ ืืืชืืืืช ืืืฉืืช.
- ืืืฆืืขืื ืืฉืืคืจืื ืืฉืืขืืชืืช ืฉื ืืืกืคื ืืืฉืคื "--gc:arc" ื-"--gc:orc".
- ืื ืืขื ืคืื ืืืืืจืืื ืฉืืคืจื ืืช ืืืืืง ืืืืืฆืืขืื ืฉื ืงืื ืื ืืชืื ืืกืคืจืื ืฉืืืื ืืืกืคืจื ื ืงืืื ืฆืคื.
- ืชืืืืืช ืืฉืืคืจืช ืฉื JS, VM ื-nimscript ืขื ืืืืืืื ืฉืขืืื ืืขืืจ ืจืง ืขื ื-C backend (ืืืืืื, ืืืืื std/prelude). ืืืืงืืช ืฉื ืืืืืืื stdlib ืขื C, JS ื-VM backends ืืืงืื.
- ื ืืกืคื ืชืืืื ืืฉืื Apple Silicon/M1, 32 ืกืืืืืช RISC-V, armv8l ืืืขืจืืืช CROSSOS.
- ื ืืกืคื ืืืืืืื std/jsbigints, std/tempfiles ื-std/sysrand. ืืืฆืขื ืฉืืคืืจืื ืืฉืืขืืชืืื ืืืืืืื ืืืขืจืืช, ืืชืืืืงื, ืืงืจืืืช, json, jsonutils, OS, ืชืืื ืืช ืืชืืื, wrapnils, ืจืฉืืืืช ื-hash.
ืืงืืจ: OpenNet.ru