[ create a new paste ] login | about

Project: programmingpraxis
Link: http://programmingpraxis.codepad.org/0ppN34nS    [ raw code | fork ]

programmingpraxis - Scheme, pasted on Nov 3:
; weather forecast

(define (tempname)
  (let loop ((i 0))
    (let ((f (string-append "temp" (number->string i))))
      (if (file-exists? f) (loop (+ i 1)) f))))

(define (with-input-from-url url thunk)
  (let ((f (tempname)))
    (if (zero? (system (string-append wget " " f " " url)))
        (begin (with-input-from-file f thunk) (delete-file f #t))
        (error 'with-input-from-url "system error in wget"))))

(define wget "c:\\cygwin\\bin\\wget -qO") ; windows/cygwin
;(define wget "/usr/local/bin/wget -qO") ; unix/hp
;(define wget "/usr/bin/wget -q0") ; linux/ubuntu

(define (weather-url state city)
  (string-append
    "http://weather.noaa.gov/pub/data/forecasts/city/"
    state "/" city ".txt"))

(define (display-weather state city)
  (with-input-from-url (weather-url state city)
    (lambda ()
      (do ((c (read-char) (read-char)))
          ((eof-object? c))
        (display c)))))

(display-weather "mo" "st_louis")


Create a new paste based on this one


Comments: