#lang racket
(require (only-in srfi/1 zip))
(provide map-take)
(define (map-take f pos lis1 . lists)
(if (null? lists)
(when (procedure? f)
(let loop ((lis lis1) (acc '()))
(with-handlers ((exn:fail:contract?
(lambda (exn) (reverse acc))))
(loop (cdr lis) (cons (f (take lis pos)) acc)))))
(map-take f pos (apply zip (cons lis1 lists)))))
I2xhbmcgcmFja2V0CgoocmVxdWlyZSAob25seS1pbiBzcmZpLzEgemlwKSkKCihwcm92aWRlIG1hcC10YWtlKQoKKGRlZmluZSAobWFwLXRha2UgZiBwb3MgbGlzMSAuIGxpc3RzKQogIChpZiAobnVsbD8gbGlzdHMpCiAgICAgICh3aGVuIChwcm9jZWR1cmU/IGYpCiAgICAgICAgKGxldCBsb29wICgobGlzIGxpczEpIChhY2MgJygpKSkKICAgICAgICAgICh3aXRoLWhhbmRsZXJzICgoZXhuOmZhaWw6Y29udHJhY3Q/CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGV4bikgKHJldmVyc2UgYWNjKSkpKQogICAgICAgICAgICAobG9vcCAoY2RyIGxpcykgKGNvbnMgKGYgKHRha2UgbGlzIHBvcykpIGFjYykpKSkpCiAgICAgIChtYXAtdGFrZSBmIHBvcyAoYXBwbHkgemlwIChjb25zIGxpczEgbGlzdHMpKSkpKQogICAgICAgICAgCg==