Shammer's Philosophy

My private adversaria

2010-04-01から1ヶ月間の記事一覧

標準入力から文字列を読み込む【その3】

C

標準入力から文字列を読み込む【その2】 - Shammerism以来、標準入力から文字列を読み込む件が中途半端になっていた。 考えられる方法として、1. 文字列格納用ポインタ変数を宣言 2. 文字入力を受付ける 3. 一文字だけ読み込む 4. 読み込んだ文字が改行でな…

コンディション超入門

Common Lisp のサイトではないが、Common Lisp 入門で Lisp の例外機構について説明があった。 どうやら、例外というものをさらに進化させたコンディションなるものが使用されているようだ。とりあえず with-open-file マクロで試す。意図的に存在するファイ…

Lisp の例外処理超入門

Java の例外処理は以下のように書く。 public void sample(){ try { throwException(); } catch(Exception e){ e.printStackTrace(); } } あらかじめ、このメソッドはこういう例外を投げる、というのを 把握しておかないといけない。まあ、JavaDoc があれば…

Lisp functions to handle directries

Lisp でディレクトリを作成する - Shammerismでは、ディレクトリの作成についてやった。作成するディレクトリをプログラム内で決定する際に使えそうな関数をいくつか見つけたのでメモ。 ? (merge-pathnames (make-pathname :directory (list :relative "Dir1…

ソースコードをHTML表示用に整形するLISPver1.0

ソースコードをHTML表示用に整形するLISPver0.4 - Shammerismの継続にして、これをバージョン1.0にしよう。とりあえず、半角スペースと <> とダブルクォート、&の対応は済ませた。ソースコードでよく使用するのはとりあえずこれくらいだろうか。あとは、行数…

ソースコードをHTML表示用に整形するLISPver0.4

ソースコードをHTML表示用に整形するLISPver0.3 - Shammerismの継続。labels を使用してコード量を減らしてみた。 (defun tr (&rest contents) (let ((line "<tr>")) (cond ((typep contents 'string) (setf line (concatenate 'string line contents))) ((typep</tr>…

Lisp の文字列操作

数値を文字列に変換する write-to-string など、いくつか記事にしたこともあるが、整理したことがないっぽいので整理してみる。 数値を文字列に変換する->write-to-string ? (setf a 1) 1 ? (type-of a) BIT ? (setf string-1 "aaa") "aaa" ? (concatenate '…

ソースコードをHTML表示用に整形するLISPver0.3

ソースコードをHTML表示用に整形するLISPver0.2 - Shammerismの続きで、空白、というか半角スペースを にするようにした。あと、インデントも入れるつもりだったが、よくよく考えてみるとオリジナルのソースコードの方で既にインデントはされているはずなの…

Common Lisp 型判定

Lisp にも、Java の instanceOf のような関数があるようだ。type-of というのがそれ。CLHS: Function TYPE-OFに説明がある。 ? (type-of '1) BIT ? (type-of '(1 2 3)) CONS ? (type-of (list 1 2)) CONS ? (type-of "aaa") (SIMPLE-BASE-STRING 3) ?うーん…