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 |

2006-08-16

なんにしろLispを使ってなにかする試み

| 22:24 | なんにしろLispを使ってなにかする試み - わだばLisperになる を含むブックマーク はてなブックマーク - なんにしろLispを使ってなにかする試み - わだばLisperになる

Lisperになりたいというより意地でもLispで書いてみる

という試みの日々。

今日は.procmailrcをいじる機会があったので、レシピ

を生成するコードを書いてみる。ちゃんとやろうとする

とそれなりになんでも勉強になるんでしょうねー。

で、実際のところちゃんとやってません(´▽`*)

エラー処理とか考えるとなにするんでも大変なんだろう

なあと。

そういうのできるようになると良いなと。

(defun procmailrc-genrecipe(from to &key to-type)
  (let ((type
	 (if to-type
	     to-type
	   (prog1
	     (cond ((find #\@ to) 'email)
		   (t 'maildir))
	     (format t "# WARNING: DWIMed recipe~%")))))

    (format t ":0~%* [Ff]rom: .*~A.*~%~A~A" 

	    from
	    
	    (case type
	      (email (concatenate 'string "!" to))
	      (otherwise to))
	    
	    (case type
	      (mh "/.")
	      (maildir "/")
	      (otherwise ""))) ))


;; CL-USER> (procmailrc-genrecipe "from@foo.local" "dir")
;; # WARNING: DWIMed recipe
;; :0
;; * [Ff]rom: .*from@foo.local.*
;; dir/
;; NIL