sbcl

Mac+sbclでclsqlが入らない。

なんでですか・・・。 asdfで入れようとすると固まって止まる。 どうしても入ってくれない。

mac+sbcl+slimeで補完が効かない件

MacBook proにsbcl入れてslime入れたんだけど、c-c c-iで補完が効かない。 なんでか分かんない。 補完が使えないと不便すぎる。 と、思っていたら、一度 M-x slime-complete-symbolしてからc-c c-iすると補完がでる。 なんで??面倒だよう。

SBCLでスクリプト

親切な通りがかりの人(多分)からコメントが。結構前にCommonLispで何かを作る 4 SBCLでCGI - テンポラリにSBCLでシェバンスクリプトが書けないって書いてたんだけど、#!/usr/bin/sbcl --scriptでいけるんだそうだ。早速試す・・・。と、うまくいかない。 …

;;どう書く?org 条件を満たす行を取り除く をcommonLispで

これは簡単。 あえてcl-pprecを使ってみた。 ;;どう書く?org 条件を満たす行を取り除く (require :asdf) (asdf:oos 'asdf:load-op :cl-ppcre) (defun remcomment(in out) (with-open-file (is in :direction :input) (with-open-file (os out :direction :o…

;どう書く?org 分数を小数に展開 をCommonLispで

久しぶりに続き。 どう書く?に出題がどんどんでちゃって、追い付く気配が全くない。 マイペースでやってくか。 今回も処理速度とか無視。 例題は通ったけどバグはあるかも。 ;;どう書く?org 分数を小数に展開 (defun calc(x) (multiple-value-bind (a b) (…

mysqlとclsqlで文字化け その1

emacs/slimeから接続して結果を取得しても、shellからつないでも日本語が化ける。 char(10)なカラムに "あいうえお"をInsertすると結果は "あいう■"みたいにつぶれる。 char(12)だと "あいうえ"になったから、一文字3バイト??になってるのか??わからん…

どう書く?org ;コインを減らす払い方 を commonlispで その2

コインを減らす払い方。できたつもり。 ずいぶん書き直したなぁ。これであってんのかなぁ。 まぁいいか。 ;;コインを減らす払い方 c (defmacro make-coins(yen1 yen5 yen10 yen50 yen100 yen500) `'((1 ,yen1) (5 ,yen5) (10 ,yen10) (50 ,yen50) (100 ,yen1…

どう書く?org ;コインを減らす払い方 を commonlispで その1

コインを減らす払い方 難しい。単純にロジックどう書けばいいかわからんぞ。 ひょっとして俺ってものすごいバカなのかも?(ショック)とりあえず、今書いたところまでのせとく。 関数を作るマクロを初めて書いた。 おもしろーい。 ;;コインを減らす払い方 (…

どう書く?org ;n人中m人が当選するくじ を commonlispで

例外処理はいいかげん。 なんだか汚いソースだなぁ・・・。 ;;n人中m人が当選するくじ (defun make-targets(n) (let ((arr (make-array n))) (reduce #'(lambda (ar i) (if (null ar) (list "0") (append ar (list (princ-to-string (length ar)))))) arr :i…

どう書く?org 指定されたフォルダ以下のゴミ掃除 を commonlispで

どう書く.orgのお題をやってみる。 まずは「指定されたフォルダ以下のゴミ掃除」なんだけど、いきなりディレクトリの一覧のしかたがわからん。 調べる・・・。 directoryでとれるみたい。・・・pathnameの使いかたがよくわからんぞ。 googleに聞いてみてもあ…

文字コード

文字列の文字コード変更は見つからない。 が、いろいろ見てたらファイルの文字コードを指定してOpenする方法はあった。 そのうちいるようになるかもしんないから書いとく。 SBCLでは通ったけど、External-Formatに何を指定できるのかは処理系依存らしいから…

CommonLispで何かを作る 4 SBCLでCGI

CGIって #!sbclのパスその後にプログラムを書くって感じでいいと思うんだけど、sbclのパスってどこなんだろ? findで調べんのかなぁ、って思ってたら昔書いたメモ発見。 which xxxでパスがわかるってさ。 which sbclで /usr/bin/sbclて返ってきた。 というわ…