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-04-05

KMRCLを眺める(132) URI-QUERY-TO-ALIST

| 13:44 | KMRCLを眺める(132) URI-QUERY-TO-ALIST - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める(132) URI-QUERY-TO-ALIST - わだばLisperになる

今回はKMRCLのstrings.lispから、URI-QUERY-TO-ALISTです。

URLのクエリパラメータを分解して、ALISTにするもののようです

動作は、

(KL:URI-QUERY-TO-ALIST "ls=%2Fusr%2Fbin%2Fls&bash=%2Fusr%2Flocal%2Fbin%2Fbash")
;⇒ (("ls" . "/usr/bin/ls") ("bash" . "/usr/local/bin/bash"))

というところ

定義は、以前の眺めたKMRCL:DECODE-URI-STRING、KMRCL:DELIMITED-STRING-TO-LISTを利用していて

(defun uri-query-to-alist (query)
  "Converts non-decoded URI query to an alist of settings"
  (mapcar (lambda (set)
            (let ((lst (kmrcl:delimited-string-to-list set #\=)))
              (cons (first lst) (second lst))))
          (kmrcl:delimited-string-to-list
           (kmrcl:decode-uri-string query) #\&)))

となっています。