君にもできるデータセンター縮退炉
Lisp Advent Calendar 2015 5 日目。
昨日はりひにーさんで Lisp なら括弧とシンボルを並べるだけ!!! でした。
こーいう CoffeeScript で書いたコードを:
# chapter002.coffee http = require 'http' options = hostname: 'www.google.co.jp' port: 80 path: '/upload' method: 'POST' request = http.request options, (response) -> console.log 'status code: ' + response.statusCode console.log 'headers: ' + JSON.stringify( response.headers ) response.setEncoding 'utf8' response.on 'data', (chunk) -> console.log 'body: ' + chunk request.on 'error', (err) -> console.log 'problem with request: ' + err.message request.write 'data\n' request.write 'data\n' request.end()
Guile 風な Shceme で書いてみた。
少し Clojure 風。
;; chapter002.scm (use-modules (nodejs) (nodejs http) (nodejs json)) (define options '((#:hostname . "www.google.co.jp") (#:port . 80) (#:path . "/upload") (#:method . #:POST))) (define request (http/request options (lambda (response) (console/log "status code: " (slot-ref response 'statusCode)) (console/log "headers: " (JSON/stringify (slot-ref response 'headers))) (.setEncoding response #:utf8) (.on response #:data (lambda (chunk) (console/log "body: " chunk)))))) (.on request #:error (lambda (err) (console/log "plobrem with request: " (slot-ref err 'message)))) (.write request "data\n") (.write request "data\n") (.end request)