Basic Werk | Blog | Contact


MEMOMEM

CommonLisp_dbi_memo_1



CLISP は ffcall とセットでインストールしておけというメモ。



$ sudo port install ffcall $ sudo port install clisp +dynffi
;; CLISP > (ql:quickload :cffi)


参考:

macでclispでcffi - tmp

http://d.hatena.ne.jp/TAKUMA_N/20110429/1304058909


Is there a way to get the CLISP compiled with dynamic FFI support on Mac OS?

http://stackoverflow.com/questions/3901698/is-there-a-way-to-get-the-clisp-compiled-with-dynamic-ffi-support-on-mac-os


上記のステップを踏んで CLISP をインストールすれば Mac OS X で CL-DBI を使ってもエラーなく動作します。



(ql:quickload :dbi) (defvar *db* (dbi-connect :sqlite3 :database-name "sample.db")) (defvar query (dbi:prepare *db* "SELECT code, name FROM members")) (defvar result (dbi:execute query))
;; dbi の fetch は plist の形で返される (dbi:fetch result) ;; -> (:|code| 1 :|name| john)
;; なので特定のカラムのデータを抜き出すには getf を使う (getf (dbi:fetch result) :|code|) ;; -> 2 ;; 実行する度に1レコード進む


中途半端ですが一旦メモ。


参考:

cl-dbi

http://quickdocs.org/cl-dbi/api


Common Lisp用のデータベースライブラリ「CL-DBI」を作りました - 八発白中

http://d.hatena.ne.jp/nitro_idiot/20120130/1327926575


Common LispのProperty Listユーティリティ「Multival-Plist」を公開しました - 八発白中

http://d.hatena.ne.jp/nitro_idiot/20120228/1330425112


#CommonLisp #Lisp #cl-dbi #ffcall #CLISP #MacOSX #MacPorts #QuickLisp #SQL #SQLite



SN 2013/07/21 00:29:10

Archives > CommonLisp_dbi_memo_1.html





CommonLisp_CL-PPCRE_01



Common Lisp の正規表現パッケージ CL-PPCRE を使ってみた。

処理系は CLISP



;; quicklisp で "ppcre" を検索 > (ql:system-apropos "ppcre") #<SYSTEM arnesi+.cl-ppcre-extras / arnesi+-20120909-darcs / quicklisp 2013-04-20> #<SYSTEM arnesi.cl-ppcre-extras / arnesi-20101006-darcs / quicklisp 2013-04-20> #<SYSTEM cl-ppcre / cl-ppcre-2.0.4 / quicklisp 2013-04-20> #<SYSTEM cl-ppcre-template / cl-unification-20130128-cvs / quicklisp 2013-04-20> #<SYSTEM cl-ppcre-test / cl-ppcre-2.0.4 / quicklisp 2013-04-20> #<SYSTEM cl-ppcre-unicode / cl-ppcre-2.0.4 / quicklisp 2013-04-20> #<SYSTEM optima.ppcre / optima-20130420-git / quicklisp 2013-04-20> #<SYSTEM parser-combinators-cl-ppcre / cl-parser-combinators-20121125-git / quicklisp 2013-04-20>
;; CL-PPCRE を load > (ql:quickload :cl-ppcre) To load "cl-ppcre": Load 1 ASDF system: cl-ppcre ; Loading "cl-ppcre"
(:CL-PPCRE)
;; Sample 文字列 > (defvar user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.28 (KHTML, like Gecko) Chrome/12.0.728.0 Safari/534.28")
;; マッチした部分文字列 > (ppcre:scan-to-strings "M\\S+" user-agent) "Mozilla/5.0" ;
;; グローバルマッチ > (ppcre:all-matches-as-strings "M\\S+" user-agent) ("Mozilla/5.0" "Macintosh;" "Mac" "ML,")
;; こんな関数を作っておくと直感的? (defun m/re/g (re str) (ppcre:all-matches-as-strings re str))
> (m/re/g "\\d+" user-agent) ("5" "0" "10" "6" "6" "534" "28" "12" "0" "728" "0" "534" "28")


まだまだこれから調べる


参考サイト:

CL-PPCRE - Portable Perl-compatible regular expressions for Common Lisp

第4回 Common Lispライブラリガイド

第2回 Quicklispによるライブラリ環境


#CommonLisp #Lisp #regex #CL-PPCRE #Quicklisp #CLISP



SN 2013/07/20 22:55:01

Archives > CommonLisp_CL-PPCRE_01.html