From ebb5b79c5509defae4864f551cf10a210be72036 Mon Sep 17 00:00:00 2001 From: binarydinosaur252 Date: Fri, 17 Aug 2018 20:51:47 -0400 Subject: [PATCH 1/4] implemented bogo sort in nim and fixed a formatting problem in book.json --- book.json | 6 +++--- contents/bogo_sort/bogo_sort.md | 4 ++++ contents/bogo_sort/code/nim/bogo_sort.nim | 24 +++++++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 contents/bogo_sort/code/nim/bogo_sort.nim diff --git a/book.json b/book.json index 9da5e002f..32eeac1ba 100644 --- a/book.json +++ b/book.json @@ -132,10 +132,10 @@ "lang": "lisp", "name": "Lisp" }, - { - "lang": "nim", + { + "lang": "nim", "name": "Nim" - } + } ] } } diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index 59fa35ae2..f29ff66f6 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -39,6 +39,8 @@ In code, it looks something like this: [import:25-31, lang:"swift"](code/swift/bogosort.swift) {% sample lang="php" %} [import:11-16, lang:"php"](code/php/bogo_sort.php) +{% sample lang="nim" %} +[import:14-16, lang:"nim"](code/nim/bogo_sort.nim) {% endmethod %} That's it. @@ -77,6 +79,8 @@ We are done here! [import, lang:"swift"](code/swift/bogosort.swift) {% sample lang="php" %} [import, lang:"php"](code/php/bogo_sort.php) +{% sample lang="nim" %} +[import, lang:"nim"](code/nim/bogo_sort.nim) {% endmethod %} diff --git a/contents/bogo_sort/code/nim/bogo_sort.nim b/contents/bogo_sort/code/nim/bogo_sort.nim new file mode 100644 index 000000000..7a6625c25 --- /dev/null +++ b/contents/bogo_sort/code/nim/bogo_sort.nim @@ -0,0 +1,24 @@ +import random + +proc print_array(a: openArray[int]) = + for n in 0 .. len(a)-1: + echo a[n] + +proc is_sorted(a: openArray[int]): bool = + for n in 1 .. len(a)-1: + if a[n] > a[n-1]: + return false + + return true + +proc bogo_sort(a: var openArray[int]) = + while not is_sorted(a): + shuffle(a) + + +var x: array[10,int] = [32,32,64,16,128,8,256,4,512,2] + +print_array(x) +bogo_sort(x) +echo "\n" +print_array(x) From ad08293e2758de8c86d6e873dad89cd96f701d7a Mon Sep 17 00:00:00 2001 From: Cyrus B Date: Sat, 18 Aug 2018 08:34:08 -0400 Subject: [PATCH 2/4] fogot to seed the rng at run time --- contents/bogo_sort/code/nim/bogo_sort.nim | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contents/bogo_sort/code/nim/bogo_sort.nim b/contents/bogo_sort/code/nim/bogo_sort.nim index 7a6625c25..aca98f749 100644 --- a/contents/bogo_sort/code/nim/bogo_sort.nim +++ b/contents/bogo_sort/code/nim/bogo_sort.nim @@ -1,5 +1,7 @@ import random +randomize() + proc print_array(a: openArray[int]) = for n in 0 .. len(a)-1: echo a[n] From acfc1da1228e4e3910da8b4ab7af9b86c5c8bb4b Mon Sep 17 00:00:00 2001 From: Cyrus B Date: Sat, 18 Aug 2018 17:39:48 -0400 Subject: [PATCH 3/4] Update bogo_sort.md --- contents/bogo_sort/bogo_sort.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index f29ff66f6..3c052d470 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -40,7 +40,7 @@ In code, it looks something like this: {% sample lang="php" %} [import:11-16, lang:"php"](code/php/bogo_sort.php) {% sample lang="nim" %} -[import:14-16, lang:"nim"](code/nim/bogo_sort.nim) +[import:16-18, lang:"nim"](code/nim/bogo_sort.nim) {% endmethod %} That's it. From 1f07483607699427949caa205d56a0b6185eefce Mon Sep 17 00:00:00 2001 From: Cyrus B Date: Sun, 19 Aug 2018 08:20:33 -0400 Subject: [PATCH 4/4] Update book.json --- book.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/book.json b/book.json index 32eeac1ba..d13710307 100644 --- a/book.json +++ b/book.json @@ -132,8 +132,8 @@ "lang": "lisp", "name": "Lisp" }, - { - "lang": "nim", + { + "lang": "nim", "name": "Nim" } ]