Skip to content

Instantly share code, notes, and snippets.

Avatar
😸

Katsuyoshi Ozaki moratori

😸
View GitHub Profile
@moratori
moratori / sample-002-swank.vim
Last active Dec 18, 2015
setting for swank
View sample-002-swank.vim
"SBCLの例です
let g:slimv_python = '/usr/bin/python'
let g:slimv_swank_cmd = '! xterm -e sbcl --load /usr/share/common-lisp/source/slime/start-swank.lisp &'
View simlpe-read-macro.lisp
;; Lisp のリーダは括弧の始まりを読むと閉じ括弧までを読む
;; ( から ) まで
;; 今それと同じ機能を [] にも 持たせる
;; まず閉じる目印になる括弧を設定
;; こいつは ) と同じ機能
(set-macro-character #\] (get-macro-character #\)))
;; 開き括弧に会ったら、閉じ括弧まで読む
(set-macro-character #\[
(lambda (stream char)
@moratori
moratori / listi.lisp
Created Jun 5, 2013
list comprehension
View listi.lisp
(defun append-1 (val var) (append var (list val)))
(defmacro collect (constructor &rest def)
(let ((result (gensym))
(syms (loop for i from 1 upto (1- (length def)) collect (gensym))))
`(let ((,result nil))
(progn
,(labels
((main (constr def syms)
@moratori
moratori / lct.lisp
Created Jun 5, 2013
list comprehenison test
View lct.lisp
(print [x | x <- '(1 2 3)])
(print [(cons x y) | x <- '(1 2 3) y <- '(2 3) ])
(print [(funcall f x) | f <- '(sin cos tan) x <- '(1 2 3 4 5) (evenp x)])
(print [(* x y) | (x y) <- '((1 2) (3 4) (5 6))])
(ql:quickload :alexandria)
(use-package :alexandria)
View sample-003-script
$ clisp file.lisp
$ sbcl --script file.lisp
View sample-004-qlisp.lisp
(load "quicklisp.lisp")
(quicklisp-quickstart:install) ;; quicklispのインストール
(ql:add-to-init-file) ;; REPL起動時にQuicklispが読み込まれるように初期化ファイルに書き込む処理
(ql:system-apropos "match") ;; ライブラリを探してみる
(ql:quickload :cl-match) ;; ライブラリをロードしてみる
View sample-005-arith.lisp
(+ 1 2 3) ;; 1 + 2 + 3 = 6
(+ 1 2 (* 3 4) (/ 6 3)) ;; 1 + 2 + 3 * 4 + 6/3 = 17
(1+ (- 7 4)) ;; 4
View sample-006-option
$ sbcl [runtime option] --end-runtime-options [toplevel option] --end-toplevel-options [user option]