git.iko.soy/rowtype-yoga/purescript-backend-optimizer
on main help sign in
41 lines 1.7 kB history raw
1// @inline export overArray arity=1
2import * as $runtime from "../runtime.js";
3import * as Data$dArray from "../Data.Array/index.js";
4import * as Data$dList$dTypes from "../Data.List.Types/index.js";
5import * as Data$dMaybe from "../Data.Maybe/index.js";
6import * as Data$dShow from "../Data.Show/index.js";
7import * as Data$dString$dCodeUnits from "../Data.String.CodeUnits/index.js";
8import * as Data$dTuple from "../Data.Tuple/index.js";
9import * as Data$dUnfoldable from "../Data.Unfoldable/index.js";
10const toUnfoldable = /* #__PURE__ */ (() => Data$dUnfoldable.unfoldableArray.unfoldr(xs => {
11 if (xs.tag === "Nil") { return Data$dMaybe.Nothing; }
12 if (xs.tag === "Cons") { return Data$dMaybe.$Maybe("Just", Data$dTuple.$Tuple(xs._1, xs._2)); }
13 $runtime.fail();
14}))();
15const test = x => Data$dArray.reverse(toUnfoldable((() => {
16 const loop = loop$a0$copy => loop$a1$copy => {
17 let loop$a0 = loop$a0$copy, loop$a1 = loop$a1$copy, loop$c = true, loop$r;
18 while (loop$c) {
19 const n = loop$a0, acc = loop$a1;
20 if (n === 0) {
21 loop$c = false;
22 loop$r = acc;
23 continue;
24 }
25 loop$a0 = n - 1 | 0;
26 loop$a1 = (() => {
27 const v1 = Data$dString$dCodeUnits.stripPrefix("1")(Data$dShow.showIntImpl(1 + x[n] | 0));
28 if (v1.tag === "Just") {
29 const $0 = "2" + v1._1;
30 if ($0 !== "wat") { return Data$dList$dTypes.$List("Cons", $0 + "1", acc); }
31 return acc;
32 }
33 if (v1.tag === "Nothing") { return acc; }
34 $runtime.fail();
35 })();
36 }
37 return loop$r;
38 };
39 return loop(x.length - 1 | 0)(Data$dList$dTypes.Nil);
40})()));
41export {test, toUnfoldable};