Hacker News new | past | comments | ask | show | jobs | submit login

Common Lisp (sbcl.org): (non-optimized - needs to remove need for consing)

(defmethod performance-count ((path-file string))

  (let ((map (make-hash-table :test 'equal)))

    (with-open-file (stream path-file :direction :input :if-does-not-exist nil)

      (when stream

        (loop for line = (read-line stream nil 'end)

       until (eq line 'end)

       do

       (let ((split (split-string #\space (string-downcase line))))

         (dolist (word split)

    (let ((index (gethash word map)))

      (if index

          (setf (gethash word map) (incf index))

        (setf (gethash word map) 1))))))

        (let ((keys (sort (alexandria:hash-table-keys map) (lambda(x y)(> (gethash x map)(gethash y map))))))

   (dolist (key keys)

     (format t "~A ~A~%" key (gethash key map))))))))

WEB> (time (performance-count "/home/frederick/performance-comparison.txt"))

the 4

foo 2

defenestration 1

Evaluation took:

  0.000 seconds of real time

  0.000294 seconds of total run time (0.000000 user, 0.000294 system)

  100.00% CPU

  757,077 processor cycles

  0 bytes consed

NIL WEB>



Does that use the corpus from the article?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: