読者です 読者をやめる 読者になる 読者になる

Let's write β

趣味で書いたこととか、RustとLispが好き

勘違いしてた。

どうやって部分テンプレートみたいなのつくってそれを連鎖させれば良いんだろうとかいってたけど、普通にできた。勘違いしてた

(ql:quickload :cl-markup)

(defmacro defpartial (name args &body body)
  `(defun ,name ,args
     (markup:markup
       ,@body)))

(defpartial todo-item (id title due)
  (:li :id id
   (:h3 title)
   (:p due)))

(defpartial todo-list (todo-list)
  (:ul
    (mapcar (lambda (todo)
              (todo-item
                (car todo)
                (cadr todo)
                (caddr todo)))
            todo-list)))

こんな感じ

CL-USER(3): (todo-item 3 "hoge" "moge")

"<li id=\"3\"><h3>hoge</h3><p>moge</p></li>"

CL-USER(4): (todo-list '((3 "moge" "fuge") (4 "hage" "hige")))

"<ul><li id=\"3\"><h3>moge</h3><p>fuge</p></li><li id=\"4\"><h3>hage</h3><p>hige</p></li></ul>"

僕が働いているAzit.incでは一緒に働けるエンジニアを募集しています!
採用情報 — 株式会社アジット|Azit Inc.