REBOL [ Author: "Jeff Kreis" Email: jeff@rebol.com Title: "Sorting nested blocks" File: %sort-nests.r Date: 16-Jun-1999 Purpose: { Sort a block of blocks on different fields. } Category: [db misc 3] ] fields: [name legs eyes web-site] creature-db: [ ["Beetle" 6 2 http://www.beetle.com] ["Fly" 6 26 http://www.fly.com] ["Aardvark" 4 2 http://www.aardvark.com] ["Spaz" 3 14 http://spaz.com] ] list-it: func ["Column printer" i [integer!]][ foreach creature creature-db [ foreach :fields creature [ foreach item [name legs eyes web-site] [pad get item] print "" ] ] ] pad: func [arg][prin arg loop absolute (length? form arg) - 10 [prin " "]] repeat i length? fields [ sort/compare creature-db func [a b][(pick a i) < pick b i] print ["^/;---Soring on field" i newline] list-it i ]