1

Тема: JScript: новая волна

В Win10 среди прочего есть chakra.dll - библиотека реализующая современные веяния JavaScript. Её, за рядом некоторых ограничений, можно вполне использовать в написании продвинутых сценариев, реализующих различные алгоритмы. Приведённый ниже пример, показывает как можно вычислить энтропию строки:

'use strict';
((args) => {
  if (!args.length) {
    WScript.echo(`Usage: cscript /nologo ` +
      `/e:{1b7cd997-e5ff-4932-a7a6-2a9e636da385} ` +
      `${WScript.ScriptName} <args>`
    );
    return;
  }

  String.prototype.ent = function() {
    return [...new Set(this)].map(c => {
      return this.split('').filter(x => c === x).length
    }).reduce((s, v) => {
      return s - v / this.length * Math.log2(v / this.length);
    }, 0).toFixed(3);
  }

  for (let i = 0; i < args.length; i++) WScript.echo(args(i).ent());
})(WScript.Arguments);

Несколько слов относительно упомянутых ранее ограничений. Главным образом они касаются в скудном взаимодействии с прочими COM, что, впрочем, нивелируется посредством WSF. Из минусов также следует указать обращение к движку через GUID.

2 (изменено: Rumata, 2021-08-26 09:45:52)

Re: JScript: новая волна

greg zakharov, коллега. Я создал отдельную тему для обсуждения возможностей Chakra - https://forum.script-coding.com/viewtopic.php?id=16553.

Буду рад Вашему ответу.

( 2 * b ) || ! ( 2 * b )