Sorting in Racket
Our example demonstrates sorting in Racket. We’ll look at sorting for built-in types first.
#lang racket
(require racket/sort)
(define (main)
; Sorting functions work for any comparable built-in type.
(define strs '("c" "a" "b"))
(define sorted-strs (sort strs string<?))
(printf "Strings: ~a\n" sorted-strs)
; An example of sorting numbers.
(define nums '(7 2 4))
(define sorted-nums (sort nums <))
(printf "Numbers: ~a\n" sorted-nums)
; We can also check if a list is already in sorted order.
(define is-sorted (sorted? sorted-nums <))
(printf "Sorted: ~a\n" is-sorted))
(main)
In Racket, we use the racket/sort
module for sorting operations. The sort
function is used to sort lists, and it takes two arguments: the list to be sorted and a comparison function.
For strings, we use string<?
as the comparison function, which compares strings lexicographically. For numbers, we use <
to sort in ascending order.
The sorted?
function checks if a list is already in sorted order according to a given comparison function.
To run the program, save it as sorting.rkt
and use the racket
command:
$ racket sorting.rkt
Strings: (a b c)
Numbers: (2 4 7)
Sorted: #t
This example demonstrates basic sorting operations in Racket. The language provides powerful sorting capabilities that can be easily applied to various data types.