From 9218cc0257cf93f775751dd533ddd88d77c44476 Mon Sep 17 00:00:00 2001 From: PaddyKe <34421580+PaddyKe@users.noreply.github.com> Date: Sat, 6 Oct 2018 13:33:22 +0200 Subject: [PATCH] Add Bogosort in Racket --- contents/bogo_sort/bogo_sort.md | 4 ++++ contents/bogo_sort/code/racket/bogo_sort.rkt | 24 ++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100755 contents/bogo_sort/code/racket/bogo_sort.rkt diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index 26083527e..734e3780e 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -47,6 +47,8 @@ In code, it looks something like this: [import:12-16, lang:"ruby"](code/ruby/bogo.rb) {% sample lang="f90" %} [import:24-32, lang:"fortran"](code/fortran/bogo.f90) +{% sample lang="racket" %} +[import:3-8, lang:"lisp"](code/racket/bogo_sort.rkt) {% endmethod %} That's it. @@ -92,6 +94,8 @@ We are done here! [import, lang:"ruby"](code/ruby/bogo.rb) {% sample lang="f90" %} [import, lang:"fortran"](code/fortran/bogo.f90) +{% sample lang="racket" %} +[import, lang:"lisp"](code/racket/bogo_sort.rkt) {% endmethod %} diff --git a/contents/bogo_sort/code/racket/bogo_sort.rkt b/contents/bogo_sort/code/racket/bogo_sort.rkt new file mode 100755 index 000000000..dfc3b1c70 --- /dev/null +++ b/contents/bogo_sort/code/racket/bogo_sort.rkt @@ -0,0 +1,24 @@ +#lang racket + +(define (bogo_sort l) + (if (is_sorted? l) + l + (bogo_sort (shuffle l)) + ) + ) + +(define (is_sorted? l) + (if (> (length l) 1) + (if (> (first l) (second l)) + false + (is_sorted? (rest l)) + ) + true + ) + ) + +(define unsorted_list '(20 -3 50 1 -6 59)) +(display "unsorted list: ") +(displayln unsorted_list) +(display "sorted list: ") +(displayln (bogo_sort unsorted_list))