lisp

clojureのprintfは?

printfなんてないから、 clojure.core/formatを使えということらしい。 ;; こんなかんじ (defn hello [name] (println (format "hello %s!!" name))) ;; マクロにしてみる。 (defmacro sayf [tmplate & body] `(println (format ~tmplate ~@body))) ;; こん…

dolistsを書いてみた。

paul grahamのdolistsがschemeにも欲しい。 >(dolists ((i '(1 2 3)) (j '(4 5 6))) (print (list i j))) (1 4) (2 5) (3 6) こんな感じのやつ。CLだとわだばlisperになるにあるように、 (defmacro dolists (pairs &body body) (let ((parms (mapcar (lambda…

arefとsvref

疑問;svrefは本当にはやいのか? 配列アクセス速度についてちょっと実験。まずはlet over lambdaより引用。 (set-dispatch-macro-character #\# #\f (lambda (stream sub-char numarg) (declare (ignore stream sub-char)) (setq numarg (or numarg 3)) (un…

elispでgoogle translate

google translate apiのversion2、REST形式を採用した。 (https://code.google.com/intl/ja/apis/language/translate/v2/using_rest.html) (defun wget (url) (shell-command-to-string (concat "/usr/bin/wget -q \"" url "\" -O -"))) (defun translate-pa…

elispでword count

就活のエントリーシートでwordcountが必要なときってよくある。 でもemacsのワードカウントコマンドってあるのかよく分からんかったので自分で作ってみた。 (defun wc (text) "word count" (length (apply 'concat (split-string text "[\s\n ]+")))) (defun…