; rhyming sort
(define (reverse-word str) (list->string (reverse (string->list str))))
(define (rhyming-lt? a b) (string<? (reverse-word a) (reverse-word b)))
(define (rhyming-sort words) (sort words rhyming-lt?))
(display (rhyming-sort '("falsely" "fly" "freely" "sorely" "surely")))
OyByaHltaW5nIHNvcnQKCihkZWZpbmUgKHJldmVyc2Utd29yZCBzdHIpIChsaXN0LT5zdHJpbmcgKHJldmVyc2UgKHN0cmluZy0+bGlzdCBzdHIpKSkpCgooZGVmaW5lIChyaHltaW5nLWx0PyBhIGIpIChzdHJpbmc8PyAocmV2ZXJzZS13b3JkIGEpIChyZXZlcnNlLXdvcmQgYikpKQoKKGRlZmluZSAocmh5bWluZy1zb3J0IHdvcmRzKSAoc29ydCB3b3JkcyByaHltaW5nLWx0PykpCgooZGlzcGxheSAocmh5bWluZy1zb3J0ICcoImZhbHNlbHkiICJmbHkiICJmcmVlbHkiICJzb3JlbHkiICJzdXJlbHkiKSkp