UNPKG

purs-pkg-deps

Version:

Query package dependencies in PureScript package-sets

42 lines (41 loc) 1.85 kB
// Generated by purs version 0.14.3 "use strict"; var Data_Array = require("../Data.Array/index.js"); var Data_Eq = require("../Data.Eq/index.js"); var Data_Foldable = require("../Data.Foldable/index.js"); var Data_Function_Memoize = require("../Data.Function.Memoize/index.js"); var Data_NonEmpty = require("../Data.NonEmpty/index.js"); var Data_Ord = require("../Data.Ord/index.js"); var Data_Semigroup_Foldable = require("../Data.Semigroup.Foldable/index.js"); var editDistance = function (dictEq) { return function (xs) { return function (ys) { var dist$prime = Data_Function_Memoize.memoize2(Data_Function_Memoize.tabulateNat)(Data_Function_Memoize.tabulateNat)(function (a) { return function (b) { return dist(a)(b); }; }); var dist = function (v) { return function (v1) { if (v === 0) { return v1; }; if (v1 === 0) { return v; }; return Data_Semigroup_Foldable.minimum(Data_Ord.ordInt)(Data_NonEmpty.foldable1NonEmpty(Data_Foldable.foldableArray))(new Data_NonEmpty.NonEmpty(dist$prime(v - 1 | 0)(v1) + 1 | 0, [ dist$prime(v)(v1 - 1 | 0) + 1 | 0, (function (dictPartial) { var $6 = Data_Eq.eq(dictEq)(xs[v - 1 | 0])(ys[v1 - 1 | 0]); if ($6) { return dist$prime(v - 1 | 0)(v1 - 1 | 0); }; return 1 + dist$prime(v - 1 | 0)(v1 - 1 | 0) | 0; })() ])); }; }; return dist$prime(Data_Array.length(xs))(Data_Array.length(ys)); }; }; }; module.exports = { editDistance: editDistance };