#lang racket/gui
(define my-language 'English)
(define translations
#hash([English . "Hello world"]
[French . "Bonjour le monde"]
[German . "Hallo Welt"]
[Greek . "Γειά σου, κόσμε"]
[Portuguese . "Olá mundo"]
[Spanish . "Hola mundo"]
[Thai . "สวัสดีชาวโลก"]))
(define my-hello-world
(hash-ref translations my-language
"hello world"))
(message-box "" my-hello-world)
; Organizing interconnected function definitions with local
; [List-of Number] [Number Number -> Boolean]
; -> [List-of Number]
; produces a version of alon0, sorted according to cmp
(define (sort-cmp alon0 cmp)
(local (; [List-of Number] -> [List-of Number]
; produces the sorted version of alon
(define (isort alon)
(cond
[(empty? alon) '()]
[else
(insert (first alon) (isort (rest alon)))]))
; Number [List-of Number] -> [List-of Number]
; inserts n into the sorted list of numbers alon
(define (insert n alon)
(cond
[(empty? alon) (cons n '())]
[else (if (cmp n (first alon))
(cons n alon)
(cons (first alon)
(insert n (rest alon))))])))
(isort alon0)))