( begin ( define ( ZEDappend ZEDlist1 ZEDlist2) ( cond ( #t ( append ZEDlist1 ZEDlist2) ) ( else err) ) ) ( define ( ZEDcar ZEDpair) ( cond ( #t ( car ZEDpair) ) ( else err) ) ) ( define ( ZEDcdr ZEDpair) ( cond ( #t ( cdr ZEDpair) ) ( else err) ) ) ( define ( ZEDcons ZEDone ZEDtwo) ( cond ( #t ( cons ZEDone ZEDtwo) ) ( else err) ) ) ( define ( ZEDmap ZEDfunction ZEDlist) ( cond ( #t ( map ZEDfunction ZEDlist) ) ( else err) ) ) ( define ( ZEDmerge ZEDcomparator ZEDlist1 ZEDlist2) ( cond ( #t ( ZEDmerge1 ZEDcomparator ZEDlist1 ZEDlist2 ( quote ( ) ) ) ) ( else err) ) ) ( define ( ZEDmerge1 ZEDcomparator ZEDlist1 ZEDlist2 ZEDcollect) ( cond ( ( ZEDnull? ZEDlist2) ( ZEDappend ( ZEDreverse ZEDcollect) ZEDlist1) ) ( ( ZEDnull? ZEDlist1) ( ZEDappend ( ZEDreverse ZEDcollect) ZEDlist2) ) ( ( ZEDcomparator ( ZEDcar ZEDlist2) ( ZEDcar ZEDlist1) ) ( ZEDmerge1 ZEDcomparator ZEDlist1 ( ZEDcdr ZEDlist2) ( ZEDcons ( ZEDcar ZEDlist2) ZEDcollect) ) ) ( #t ( ZEDmerge1 ZEDcomparator ( ZEDcdr ZEDlist1) ZEDlist2 ( ZEDcons ( ZEDcar ZEDlist1) ZEDcollect) ) ) ( else err) ) ) ( define ( ZEDnull? ZEDvalue) ( cond ( #t ( null? ZEDvalue) ) ( else err) ) ) ( define ( ZEDreverse ZEDlist) ( cond ( #t ( reverse ZEDlist) ) ( else err) ) ) ( define ( ZEDsort ZEDcomparator ZEDjumble) ( cond ( #t ( ZEDcar ( ZEDsort11 ZEDcomparator ( ZEDsort1 ZEDjumble) ) ) ) ( else err) ) ) ( define ( ZEDsort1 ZEDjumble) ( cond ( #t ( ZEDmap list ZEDjumble) ) ( else err) ) ) ( define ( ZEDsort11 ZEDcomparator ZEDjumble) ( cond ( ( ZEDnull? ZEDjumble) ( quote ( ) ) ) ( ( ZEDnull? ( ZEDcdr ZEDjumble) ) ZEDjumble) ( #t ( ZEDsort11 ZEDcomparator ( ZEDcons ( ZEDmerge ZEDcomparator ( ZEDcar ZEDjumble) ( cadr ZEDjumble) ) ( ZEDsort11 ZEDcomparator ( cddr ZEDjumble) ) ) ) ) ( else err) ) ) )
( display ( ZEDsort > '( 1 3 5 6 9 0 8 7 4 2 ) ) )
KGJlZ2luIChkZWZpbmUgKFpFRGFwcGVuZCBaRURsaXN0MSBaRURsaXN0MikgKGNvbmQgKCN0IChhcHBlbmQgWkVEbGlzdDEgWkVEbGlzdDIpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEY2FyIFpFRHBhaXIpIChjb25kICgjdCAoY2FyIFpFRHBhaXIpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEY2RyIFpFRHBhaXIpIChjb25kICgjdCAoY2RyIFpFRHBhaXIpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEY29ucyBaRURvbmUgWkVEdHdvKSAoY29uZCAoI3QgKGNvbnMgWkVEb25lIFpFRHR3bykpIChlbHNlIGVycikpKSAoZGVmaW5lIChaRURtYXAgWkVEZnVuY3Rpb24gWkVEbGlzdCkgKGNvbmQgKCN0IChtYXAgWkVEZnVuY3Rpb24gWkVEbGlzdCkpIChlbHNlIGVycikpKSAoZGVmaW5lIChaRURtZXJnZSBaRURjb21wYXJhdG9yIFpFRGxpc3QxIFpFRGxpc3QyKSAoY29uZCAoI3QgKFpFRG1lcmdlMSBaRURjb21wYXJhdG9yIFpFRGxpc3QxIFpFRGxpc3QyIChxdW90ZSAoKSkpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEbWVyZ2UxIFpFRGNvbXBhcmF0b3IgWkVEbGlzdDEgWkVEbGlzdDIgWkVEY29sbGVjdCkgKGNvbmQgKChaRURudWxsPyBaRURsaXN0MikgKFpFRGFwcGVuZCAoWkVEcmV2ZXJzZSBaRURjb2xsZWN0KSBaRURsaXN0MSkpICgoWkVEbnVsbD8gWkVEbGlzdDEpIChaRURhcHBlbmQgKFpFRHJldmVyc2UgWkVEY29sbGVjdCkgWkVEbGlzdDIpKSAoKFpFRGNvbXBhcmF0b3IgKFpFRGNhciBaRURsaXN0MikgKFpFRGNhciBaRURsaXN0MSkpIChaRURtZXJnZTEgWkVEY29tcGFyYXRvciBaRURsaXN0MSAoWkVEY2RyIFpFRGxpc3QyKSAoWkVEY29ucyAoWkVEY2FyIFpFRGxpc3QyKSBaRURjb2xsZWN0KSkpICgjdCAoWkVEbWVyZ2UxIFpFRGNvbXBhcmF0b3IgKFpFRGNkciBaRURsaXN0MSkgWkVEbGlzdDIgKFpFRGNvbnMgKFpFRGNhciBaRURsaXN0MSkgWkVEY29sbGVjdCkpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEbnVsbD8gWkVEdmFsdWUpIChjb25kICgjdCAobnVsbD8gWkVEdmFsdWUpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEcmV2ZXJzZSBaRURsaXN0KSAoY29uZCAoI3QgKHJldmVyc2UgWkVEbGlzdCkpIChlbHNlIGVycikpKSAoZGVmaW5lIChaRURzb3J0IFpFRGNvbXBhcmF0b3IgWkVEanVtYmxlKSAoY29uZCAoI3QgKFpFRGNhciAoWkVEc29ydDExIFpFRGNvbXBhcmF0b3IgKFpFRHNvcnQxIFpFRGp1bWJsZSkpKSkgKGVsc2UgZXJyKSkpIChkZWZpbmUgKFpFRHNvcnQxIFpFRGp1bWJsZSkgKGNvbmQgKCN0IChaRURtYXAgbGlzdCBaRURqdW1ibGUpKSAoZWxzZSBlcnIpKSkgKGRlZmluZSAoWkVEc29ydDExIFpFRGNvbXBhcmF0b3IgWkVEanVtYmxlKSAoY29uZCAoKFpFRG51bGw/IFpFRGp1bWJsZSkgKHF1b3RlICgpKSkgKChaRURudWxsPyAoWkVEY2RyIFpFRGp1bWJsZSkpIFpFRGp1bWJsZSkgKCN0IChaRURzb3J0MTEgWkVEY29tcGFyYXRvciAoWkVEY29ucyAoWkVEbWVyZ2UgWkVEY29tcGFyYXRvciAoWkVEY2FyIFpFRGp1bWJsZSkgKGNhZHIgWkVEanVtYmxlKSkgKFpFRHNvcnQxMSBaRURjb21wYXJhdG9yIChjZGRyIFpFRGp1bWJsZSkpKSkpIChlbHNlIGVycikpKSkKKGRpc3BsYXkgKFpFRHNvcnQgPiAnKDEgMyA1IDYgOSAwIDggNyA0IDIpKSk=
stdin
KGFwcGVuZCkgbGlzdDEgbGlzdDIKY29tbWVudDoKI3RydWUKKDAwMykgJnF1b3Q7YXBwZW5kJnF1b3Q7IGxpc3QxIGxpc3QyCiAKKGNhcikgcGFpcgpjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtjYXImcXVvdDsgcGFpcgogCihjZHIpIHBhaXIKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7Y2RyJnF1b3Q7IHBhaXIKIAooY29ucykgb25lIHR3bwpjb21tZW50OgojdHJ1ZQooMDAzKSAmcXVvdDtjb25zJnF1b3Q7IG9uZSB0d28KIAoobWFwKSBmdW5jdGlvbiBsaXN0CmNvbW1lbnQ6CiN0cnVlCigwMDMpICZxdW90O21hcCZxdW90OyBmdW5jdGlvbiBsaXN0CiAKKG1lcmdlKSBjb21wYXJhdG9yIGxpc3QxIGxpc3QyCmNvbW1lbnQ6CiN0cnVlCihtZXJnZTEpIGNvbXBhcmF0b3IgbGlzdDEgbGlzdDIgbmlsCiAKKG1lcmdlMSkgY29tcGFyYXRvciBsaXN0MSBsaXN0MiBjb2xsZWN0CmNvbW1lbnQ6CihudWxsPykgbGlzdDIKKGFwcGVuZCkgKHJldmVyc2UpIGNvbGxlY3QgbGlzdDEKIAoobWVyZ2UxKSBjb21wYXJhdG9yIGxpc3QxIGxpc3QyIGNvbGxlY3QKY29tbWVudDoKKG51bGw/KSBsaXN0MQooYXBwZW5kKSAocmV2ZXJzZSkgY29sbGVjdCBsaXN0MgogCihtZXJnZTEpIGNvbXBhcmF0b3IgbGlzdDEgbGlzdDIgY29sbGVjdApjb21tZW50OgooMDAzKSBjb21wYXJhdG9yIChjYXIpIGxpc3QyIChjYXIpIGxpc3QxCihtZXJnZTEpIGNvbXBhcmF0b3IgbGlzdDEgKGNkcikgbGlzdDIgKGNvbnMpIChjYXIpIGxpc3QyIGNvbGxlY3QKIAoobWVyZ2UxKSBjb21wYXJhdG9yIGxpc3QxIGxpc3QyIGNvbGxlY3QKY29tbWVudDoKI3RydWUKKG1lcmdlMSkgY29tcGFyYXRvciAoY2RyKSBsaXN0MSBsaXN0MiAoY29ucykgKGNhcikgbGlzdDEgY29sbGVjdAogCihudWxsPykgdmFsdWUKY29tbWVudDoKI3RydWUKKDAwMikgJnF1b3Q7bnVsbD8mcXVvdDsgdmFsdWUKIAoocmV2ZXJzZSkgbGlzdApjb21tZW50OgojdHJ1ZQooMDAyKSAmcXVvdDtyZXZlcnNlJnF1b3Q7IGxpc3QKIAooc29ydCkgY29tcGFyYXRvciBqdW1ibGUKY29tbWVudDoKI3RydWUKKGNhcikgKHNvcnQxMSkgY29tcGFyYXRvciAoc29ydDEpIGp1bWJsZQogCihzb3J0MSkganVtYmxlCmNvbW1lbnQ6CiN0cnVlCihtYXApICZxdW90O2xpc3QmcXVvdDsganVtYmxlCiAKKHNvcnQxMSkgY29tcGFyYXRvciBqdW1ibGUKY29tbWVudDoKKG51bGw/KSBqdW1ibGUKbmlsCiAKKHNvcnQxMSkgY29tcGFyYXRvciBqdW1ibGUKY29tbWVudDoKKG51bGw/KSAoY2RyKSBqdW1ibGUKanVtYmxlCiAKKHNvcnQxMSkgY29tcGFyYXRvciBqdW1ibGUKY29tbWVudDoKI3RydWUKKHNvcnQxMSkgY29tcGFyYXRvcgogICAgICAgICAoY29ucykgKG1lcmdlKSBjb21wYXJhdG9yIChjYXIpIGp1bWJsZSAoMDAyKSAmcXVvdDtjYWRyJnF1b3Q7IGp1bWJsZQogICAgICAgICAgICAgICAgKHNvcnQxMSkgY29tcGFyYXRvciAoMDAyKSAmcXVvdDtjZGRyJnF1b3Q7IGp1bWJsZQ==
(append) list1 list2
comment:
#true
(003) "append" list1 list2
(car) pair
comment:
#true
(002) "car" pair
(cdr) pair
comment:
#true
(002) "cdr" pair
(cons) one two
comment:
#true
(003) "cons" one two
(map) function list
comment:
#true
(003) "map" function list
(merge) comparator list1 list2
comment:
#true
(merge1) comparator list1 list2 nil
(merge1) comparator list1 list2 collect
comment:
(null?) list2
(append) (reverse) collect list1
(merge1) comparator list1 list2 collect
comment:
(null?) list1
(append) (reverse) collect list2
(merge1) comparator list1 list2 collect
comment:
(003) comparator (car) list2 (car) list1
(merge1) comparator list1 (cdr) list2 (cons) (car) list2 collect
(merge1) comparator list1 list2 collect
comment:
#true
(merge1) comparator (cdr) list1 list2 (cons) (car) list1 collect
(null?) value
comment:
#true
(002) "null?" value
(reverse) list
comment:
#true
(002) "reverse" list
(sort) comparator jumble
comment:
#true
(car) (sort11) comparator (sort1) jumble
(sort1) jumble
comment:
#true
(map) "list" jumble
(sort11) comparator jumble
comment:
(null?) jumble
nil
(sort11) comparator jumble
comment:
(null?) (cdr) jumble
jumble
(sort11) comparator jumble
comment:
#true
(sort11) comparator
(cons) (merge) comparator (car) jumble (002) "cadr" jumble
(sort11) comparator (002) "cddr" jumble