Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 36 lines (29 sloc) 0.692 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
List valueOutOfPlace := method(position,
  at(position) < at(position - 1)
)

List stepItBack := method(position,
  swapIndices(position-1, position)
  if(position > 1,
    position = position - 1
  )
  position
)

List moveForward := method(position,
  position + 1
)

List gnomeSort := method(
  position := 1
  while(position < size,
    if(valueOutOfPlace(position),
       position = stepItBack(position),
       position = moveForward(position)
    )
  )
)

l := list(3,1,5,2,13,14,12,15)
expected := list(1,2,3,5,12,13,14,15)

l gnomeSort

if(l == expected,
   "they're the same" println,
   Exception raise("they're not the same expected\n #{expected} but got\n #{l}" interpolate)
)
Something went wrong with that request. Please try again.