purs-pkg-deps
Version:
Query package dependencies in PureScript package-sets
42 lines (41 loc) • 1.85 kB
JavaScript
// Generated by purs version 0.14.3
;
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
};