#lang racket
(require (only-in srfi/1 zip))
(provide take-for-each)
(define (take-for-each proc pos lis1 . lists)
(if (null? lists)
(when (procedure? proc)
(let loop ((lis lis1))
(with-handlers ((exn:fail:contract?
(lambda (exn) (void))))
(proc (take lis pos))
(loop (cdr lis)))))
(take-for-each proc pos (apply zip (cons lis1 lists)))))
I2xhbmcgcmFja2V0CgoocmVxdWlyZSAob25seS1pbiBzcmZpLzEgemlwKSkKCihwcm92aWRlIHRha2UtZm9yLWVhY2gpCgooZGVmaW5lICh0YWtlLWZvci1lYWNoIHByb2MgcG9zIGxpczEgLiBsaXN0cykKICAoaWYgKG51bGw/IGxpc3RzKQogICAgICAod2hlbiAocHJvY2VkdXJlPyBwcm9jKQogICAgICAgIChsZXQgbG9vcCAoKGxpcyBsaXMxKSkKICAgICAgICAgICh3aXRoLWhhbmRsZXJzICgoZXhuOmZhaWw6Y29udHJhY3Q/CiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGV4bikgKHZvaWQpKSkpCiAgICAgICAgICAgIChwcm9jICh0YWtlIGxpcyBwb3MpKQogICAgICAgICAgICAobG9vcCAoY2RyIGxpcykpKSkpCiAgICAgICh0YWtlLWZvci1lYWNoIHByb2MgcG9zIChhcHBseSB6aXAgKGNvbnMgbGlzMSBsaXN0cykpKSkp