diff options
| author | Kang-min Liu <gugod@gugod.org> | 2021-01-21 00:09:25 +0900 |
|---|---|---|
| committer | Kang-min Liu <gugod@gugod.org> | 2021-01-21 00:09:25 +0900 |
| commit | 34531261097ff884893213a0dd4dea05fa8533bd (patch) | |
| tree | 58412c8d382b4ab56447251269f7ff0d087dc44d | |
| parent | 4494023a1c815c1fb39d42fea78d7caa6c28515b (diff) | |
| download | perlweeklychallenge-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.janet | 24 |
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)))) |
