Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-03-28

KMRCLを眺める(127) HEXCHAR

| 23:45 | KMRCLを眺める(127) HEXCHAR - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める(127) HEXCHAR - わだばLisperになる

今回はKMRCLのstrings.lispから、HEXCHARです。

動作は、

(KL:HEXCHAR 10)
;⇒ #\A

というように0〜15を与えると、対応する16進の文字を返してくれるという関数のようです。

定義は、

(defvar +hex-chars+ "0123456789ABCDEF")
(declaim (type simple-string +hex-chars+))

(defun hexchar (n)
  (declare (type (integer 0 15) n))
  (schar +hex-chars+ n))

となっています。

高速に変換したい時に利用するんでしょうか。

以前も疑問に思いましたが、KMRCLでは、定数にしそうなところを、DEFVARで宣言するのはなんで何故なんでしょう。

今回は、+foo+という名前の付け方なので、Typoでしょうか…。