Created
January 24, 2022 23:38
-
-
Save death/28cccef566a6f61bb1fb6b2421e34805 to your computer and use it in GitHub Desktop.
language similarity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(in-package :clim-user) | |
(defvar *langs* | |
'((common-lisp cons parens defmacro eval special quote) | |
(emacs-lisp cons parens defmacro eval special quote) | |
(clojure -cons parens defmacro eval special quote) | |
(janet -cons parens defmacro eval special quote) | |
(scheme cons parens hygienic eval -special quote) | |
(dylan cons -parens hygienic -eval -special -quote) | |
(maclisp cons parens defmacro eval special quote) | |
(interlisp cons parens defmacro eval special quote) | |
(autolisp cons parens -macro eval special quote) | |
(l-m-lisp cons parens defmacro eval special quote) | |
(eulisp cons parens -macro -eval special quote) | |
(islisp cons parens defmacro -eval special quote) | |
(julia -cons -parens defmacro eval -special quote) | |
(r -cons -parens -macro eval -special quote) | |
(*lisp cons parens defmacro eval special quote) | |
(lelisp cons parens defmacro eval special quote) | |
(lisp1.5 cons parens -macro eval special quote))) | |
(defun jaccard-distance (set1 set2) | |
(let ((x (length (union (set-difference set1 set2) | |
(set-difference set2 set1)))) | |
(u (length (union set1 set2)))) | |
(if (zerop u) | |
0 | |
(/ x (+ x u))))) | |
(defun print-table () | |
(formatting-table () | |
(formatting-row () | |
(formatting-cell () | |
(format t "-")) | |
(dolist (l *langs*) | |
(formatting-cell () | |
(format t "~A" (car l))))) | |
(do ((l1 *langs* (rest l1))) | |
((null l1)) | |
(formatting-row () | |
(formatting-cell () | |
(format t "~A" (caar l1))) | |
(do ((l2 *langs* (rest l2))) | |
((null l2)) | |
(formatting-cell (t :align-x :center) | |
(let ((d (jaccard-distance (car l1) (car l2)))) | |
(format t "~,2F" d)))))))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment