time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

E_A.js (2392B)


      1 import { Ok } from "./result.js";
      2 export const zip = (xs, ys) => {
      3     const lenX = xs.length;
      4     const lenY = ys.length;
      5     const len = lenX < lenY ? lenX : lenY;
      6     const s = new Array(len);
      7     for (let i = 0; i < len; i++) {
      8         s[i] = [xs[i], ys[i]];
      9     }
     10     return s;
     11 };
     12 export const accumulate = (items, fn) => {
     13     const len = items.length;
     14     if (len === 0)
     15         return [];
     16     const result = new Array(len);
     17     result[0] = items[0];
     18     for (let i = 1; i < len; i++) {
     19         result[i] = fn(items[i], result[i - 1]);
     20     }
     21     return result;
     22 };
     23 export const accumulateWithError = (items, fn) => {
     24     const len = items.length;
     25     if (len === 0)
     26         return Ok([]);
     27     const results = new Array(len);
     28     results[0] = items[0];
     29     for (let i = 1; i < len; i++) {
     30         const r = fn(items[i], results[i - 1]);
     31         if (!r.ok)
     32             return r;
     33         results[i] = r.value;
     34     }
     35     return Ok(results);
     36 };
     37 export const unzip = (items) => {
     38     const len = items.length;
     39     const a1 = new Array(len);
     40     const a2 = new Array(len);
     41     for (let i = 0; i < len; i++) {
     42         const [v1, v2] = items[i];
     43         a1[i] = v1;
     44         a2[i] = v2;
     45     }
     46     return [a1, a2];
     47 };
     48 export const pairwise = (items, fn) => {
     49     const result = [];
     50     for (let i = 1; i < items.length; i++) {
     51         result.push(fn(items[i - 1], items[i]));
     52     }
     53     return result;
     54 };
     55 export const pairwiseWithError = (items, fn) => {
     56     const result = [];
     57     for (let i = 1; i < items.length; i++) {
     58         const r = fn(items[i - 1], items[i]);
     59         if (!r.ok)
     60             return r;
     61         result.push(r.value);
     62     }
     63     return Ok(result);
     64 };
     65 export const makeBy = (n, fn) => {
     66     const result = [];
     67     for (let i = 0; i < n; i++) {
     68         result.push(fn(i));
     69     }
     70     return result;
     71 };
     72 export function shuffle(array) {
     73     const shuffledArray = [...array];
     74     for (let i = shuffledArray.length - 1; i > 0; i--) {
     75         const j = Math.floor(Math.random() * (i + 1));
     76         [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
     77     }
     78     return shuffledArray;
     79 }
     80 export function isEqual(arr1, arr2) {
     81     if (arr1.length !== arr2.length) {
     82         return false;
     83     }
     84     for (let i = 0; i < arr1.length; i++) {
     85         if (arr1[i] !== arr2[i]) {
     86             return false;
     87         }
     88     }
     89     return true;
     90 }
     91 //# sourceMappingURL=E_A.js.map