{"published":"2026-04-25 05:30:11","categories":["LISP","\u95a2\u6570\u578b"],"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fypooo.hatenablog.com%2Fentry%2F2026%2F04%2F25%2F053011\" title=\"Python\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306e\u305f\u3081\u306eCommon Lisp\u30b3\u30fc\u30c9\u89e3\u8aac 04 - ypooo\u2019s diary\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","provider_name":"Hatena Blog","title":"Python\u30d7\u30ed\u30b0\u30e9\u30de\u30fc\u306e\u305f\u3081\u306eCommon Lisp\u30b3\u30fc\u30c9\u89e3\u8aac 04","height":"190","author_name":"ypooo","author_url":"https://blog.hatena.ne.jp/ypooo/","blog_title":"ypooo\u2019s diary","provider_url":"https://hatena.blog","blog_url":"https://ypooo.hatenablog.com/","image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/y/ypooo/20260425/20260425055449.jpg","type":"rich","url":"https://ypooo.hatenablog.com/entry/2026/04/25/053011","width":"100%","description":"### 4. root-domain \u95a2\u6570 ypooo.hatenablog.com (defun root-domain (url) (handler-case (let* ((uri (puri:parse-uri url)) (host (or (puri:uri-host uri) \"\")) (parts (split-sequence #\\. host)) (n (length parts))) (cond ((<= n 2) host) ((and (>= n 3) (member (format nil \"~A.~A\" (nth (- n 2) parts) (nth (- n \u2026"}