Merge pull request #1075 from flaviut/inlinedocs

Add some documentations and code examples in system
This commit is contained in:
Andreas Rumpf 2014-04-09 22:56:18 +02:00
commit a690e7b267
71 changed files with 2521 additions and 15 deletions

26
tests/misc/tstrdist.nim Normal file
View file

@ -0,0 +1,26 @@
# compute the edit distance between two strings
proc editDistance(a, b: string): int =
var
c: seq[int]
n = a.len
m = b.len
newSeq(c, (n+1)*(m+1))
for i in 0..n:
c[i*n] = i # [i,0]
for j in 0..m:
c[j] = j # [0,j]
for i in 1..n:
for j in 1..m:
var x = c[(i-1)*n + j]+1
var y = c[i*n + j-1]+1
var z: int
if a[i-1] == b[j-1]:
z = c[(i-1)*n + j-1]
else:
z = c[(i-1)*n + j-1]+1
c[(i-1)*n + (j-1)] = min(x,min(y,z))
return c[n*m]
write(stdout, editDistance("abc", "abd"))