44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
#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)))
|
|
|