USING: xml.syntax xml.writer locals sequences ; TUPLE: person name age record ; CONSTANT: friends { T{ person { name "George" } { age 25 } { record { "Posession paraphenalia" "Posession narcotics" "Break and enter" } } } T{ person { name "Derek Ray" } { age 31 } { record { "Armed robbery" "Fraud" "Rape" } } } T{ person { name "Johnny" } { age 17 } { record { "Truancy" "First-degree murder" } } } } : render-record ( list -- xml ) [ [XML
  • <->
  • XML] ] map [XML XML] ; :: render-person ( name age record -- xml ) [XML <-name-> <-age-> <-record-> XML] ; : render-report ( people -- xml ) <->
    NameAgeRap sheet
    XML> ; : do-stuff ( -- ) friends [ [ name>> ] [ age>> ] [ record>> render-record ] tri render-person ] map render-report pprint-xml ;