(use-modules (ice-9 threads)) (use-modules (ice-9 rdelim)) (use-modules (ice-9 popen)) (use-modules (ice-9 rdelim)) ;;; wrapping curl command (define (curl url) (let* ((port (open-input-pipe (format #f "curl -is \"~a\"" url))) (response (read-string port))) (close-pipe port) response)) (define (maybe-curl url) (catch #t (lambda () (cons url (curl url))) (lambda _ '()))) (define urls (let loop ((line (read-line)) (out '())) (if (eof-object? line) out (loop (read-line) (cons line out))))) (n-for-each-par-map 16 write maybe-curl urls)