aboutsummaryrefslogtreecommitdiff
path: root/rosetta/lev.neb
diff options
context:
space:
mode:
Diffstat (limited to 'rosetta/lev.neb')
-rw-r--r--rosetta/lev.neb20
1 files changed, 20 insertions, 0 deletions
diff --git a/rosetta/lev.neb b/rosetta/lev.neb
new file mode 100644
index 0000000..6797c41
--- /dev/null
+++ b/rosetta/lev.neb
@@ -0,0 +1,20 @@
+(func min (lst :{:int})
+ (def val (first lst))
+ (for-each (rest lst)
+ (if (< _item_ val)
+ (redef val _item_)))
+ val)
+
+(func lev (s t)
+ (branch
+ ((eq? 0 (length s)) (length t))
+ ((eq? 0 (length t)) (length s))
+ ((eq? (first s) (first t))
+ (lev (rest s) (rest t)))
+ (#true
+ (+ 1
+ (min
+ (list
+ (lev s (rest t))
+ (lev (rest s) t)
+ (lev (rest s) (rest t))))))))