23 lines
508 B
Plaintext
23 lines
508 B
Plaintext
import <Utilities/Sequence.sl>;
|
|
|
|
lcsBack(a(1), b(1)) :=
|
|
let
|
|
aSub := allButLast(a);
|
|
bSub := allButLast(b);
|
|
|
|
x := lcsBack(a, bSub);
|
|
y := lcsBack(aSub, b);
|
|
in
|
|
[] when size(a) = 0 or size(b) = 0
|
|
else
|
|
lcsBack(aSub, bSub) ++ [last(a)] when last(a) = last(b)
|
|
else
|
|
x when size(x) > size(y)
|
|
else
|
|
y;
|
|
|
|
main(args(2)) :=
|
|
lcsBack(args[1], args[2]) when size(args) >=2
|
|
else
|
|
lcsBack("thisisatest", "testing123testing");
|