トップ «前の日記(2013-04-02(Tue)) 最新 次の日記(2013-04-04(Thu))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2013-04-03(Wed) 昨晩の予報では雨、今日の予報は晴

こっちの方が

#!/usr/bin/env clisp
(print "print foo")
(prin1 "prin1 foo")
(princ "princ foo")
$ ./print.lp 
 
"print foo" "prin1 foo"princ foo

print は、改行してから出力し、最後に 空白を一つ出すそうな。

循環リスト

circular list とかいうらしい。
clisp では、この前に、

[1]> (setf *print-circle* t)

する。それから。

[2]> (defparameter *myclist* (list 1 2 3))
*MYCLIST*
[3]> *myclist*
(1 2 3)
[4]> (cdr *myclist*)
(2 3)
[5]> (cdr (cdr *myclist*))
(3)
[6]> (cdr (cdr (cdr *myclist*)))
NIL
[7]> (cdr (cdr (cdr (cdr *myclist*))))
NIL

この最後尾のnilを自分自身と置き換える。

[8]>> (setf (cdr (cdr (cdr *myclist*))) *myclist*)
#1=(1 2 3 . #1#)
[9]>> (cdr *myclist*)
#1=(2 3 1 . #1#)
[10]> (cdr (cdr *myclist*))
#1=(3 1 2 . #1#)
[11]> (cdr (cdr (cdr *myclist*)))
#1=(1 2 3 . #1#)

mew-refile-guess-by-alist

ずっと昔にどこかから頂戴した設定を見様見真似で書き換えて メール振り分けに使っていた。
alist のリストの car がキーとなり、value と値の一致した メールがあったら、 folder を振り分け候補にする。らしい。

(setq mew-refile-guess-by-alist
      '(("key1"
         ("value1_1" . "+folder1_1")
         ("value1_2" . "+folder1_2") ...)
        ("key2"
         ("value2_1" . "+folder2_1")
         ("value2_2" . "+folder2_2") ...)
        ...
        )
      )

key には "Return-Path:" しか使ってなかったが、 "List-ID:" なども使ってみた。
また、value に "ZuckMail \\[version 1\\.00\\]" といった正規表現も書いてみた。

elseがないのか

リストの前から何番目かを返す関数を書いてみた。
配列を使えばいいのだろうけど。

(defun myllist (mylist num)                                               
 (cond                                                                    
  ((< num 0) nil)
  ((zerop num) (car mylist))                                              
  (t (myllist (cdr mylist) (- num 1)))))
(myllist '(zero one two three) 2)
TWO

else でなく t とわかるまで、しばらく嵌っていた。
この場合、mylist が大きければ大きいほど時間がかかる...はず?


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。