aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKang-min Liu <gugod@gugod.org>2021-01-21 00:09:25 +0900
committerKang-min Liu <gugod@gugod.org>2021-01-21 00:09:25 +0900
commit34531261097ff884893213a0dd4dea05fa8533bd (patch)
tree58412c8d382b4ab56447251269f7ff0d087dc44d
parent4494023a1c815c1fb39d42fea78d7caa6c28515b (diff)
downloadperlweeklychallenge-club-34531261097ff884893213a0dd4dea05fa8533bd.tar.gz
perlweeklychallenge-club-34531261097ff884893213a0dd4dea05fa8533bd.tar.bz2
perlweeklychallenge-club-34531261097ff884893213a0dd4dea05fa8533bd.zip
a solution to pwc 096.2 in janet-lang
-rw-r--r--challenge-096/gugod/janet/ch-2.janet24
1 files changed, 24 insertions, 0 deletions
diff --git a/challenge-096/gugod/janet/ch-2.janet b/challenge-096/gugod/janet/ch-2.janet
new file mode 100644
index 0000000000..55887d1c4b
--- /dev/null
+++ b/challenge-096/gugod/janet/ch-2.janet
@@ -0,0 +1,24 @@
+
+(defn lev
+ "Compute the Levenshtein distance between string a and b"
+ [a b]
+ (cond (= 0 (length a)) (length b)
+ (= 0 (length b)) (length a)
+ (let [
+ a_head (string/slice a 0 1)
+ a_tail (string/slice a 1)
+ b_head (string/slice b 0 1)
+ b_tail (string/slice b 1)
+ levtail (lev a_tail b_tail)
+ ]
+ (if (= a_head b_head) levtail
+ (+ 1 (min
+ (lev a b_tail)
+ (lev a_tail b)
+ levtail))))))
+
+# main
+(loop [[s1 s2] :in [ ["kitten" "sitting"] ["sunday" "monday"] ]]
+ (print (string
+ "Input: S1=" s1 " S2=" s2 "\n"
+ "Output: " (lev s1 s2))))