* [2022-11-14 月] ((☁ . くもり) (☁→☔ . くもり 昼過ぎ から 雨 所により 雷 を伴う) (☁☔ . くもり 一時 雨)) ** jsclを入れてみた :lisp: 最初に使ってみたのはもうかれこれ2年ほど前だろうか。 調べると2020-0712作成のファイルが出てきた。 それを見る感じではjsclとparenscriptで lisp風な式を作成し評価すると javascriptっぽいコードを吐き出している。 ただparenscriptは現在のjsより古いバージョンのjsに 対応しているので現在はちょっと古めの作りになっているのと、 ちょっと使い方を覚えるのが面倒な感じで、 そんなんだったらjavascriptの使い方を知った方がいいような気がして マニュアルにもかつて目は通したけど、 あまり学ぶ意欲がわかない。 jsclはcommon lispからjsへのコンパイラとの事なんだけど、 イマイチ使い方がよくわからない。 npmからもinstall出来て $ jsclで起動するが、そこには JSCL is a Common Lisp implementation on Javascript. と出ているので、javascript上に作られたclの実装といった感じか。 common lispのかなりの範囲をカバーしていて、 format関数についてはまだとの事。 そういう事もあって、トップページのソースコードを jsclのreplで実行していくとやはりformat関数の 箇所でエラーが出ているが、出力結果を見ると全くサポートしていない という訳でもなさそう。 #+BEGIN_SRC lisp CL-USER> (defun make-blog-menu () ... (let ((a1 (make-article :title "first" ... :link "./first.html")) ... (a2 (make-article :title "lisp" ... :link "./lisp-menu.lisp.html")) ... (a3 (make-article :title "agriculture" ... :link "./agri-menu.lisp.html")) ... (a4 (make-article :title "others" ... :link "./others-menu.lisp.html"))) ... (setf (menu-first menu1) a1 ... (menu-lisp menu1) a2 ... (menu-agri menu1) a3 ... (menu-others menu1) a4) ... (format t "(:menu ~{[[~a][~a]]~^ ~})" ... (list (article-link a1) (article-title a1) ... (article-link a2) (article-title a2) ... (article-link a3) (article-title a3) ... (article-link a4) (article-title a4))))) MAKE-BLOG-MENU CL-USER> (make-blog-menu) WARNING: #\{ is not implemented yet, using ~S instead WARNING: #\^ is not implemented yet, using ~S instead WARNING: #\} is not implemented yet, using ~S instead (:menu ("./first.html" "first" "./lisp-menu.lisp.html" "lisp" "./agri-menu.lisp.html" "agriculture" "./others-menu.lisp.html" "others")[[NIL][NIL]]NIL NIL)NIL #+END_SRC ただ先にも書いた通り、何に使えるのか正直ピンとこない。 とりあえず、入れてみたが少しいじったりすればそのうち 何かわかってくるかもしれない。 しかし、gitでremote repositoryにアップする際、 submoduleを使ったりもしてみたが、それだとbootstrap後に 作成されたjscl.jsなどをアップする事が出来なくて、 少しそこで詰まった。github本当にややこしくてなかなか好きに なれない。 ** このブログの在り方について カテゴリ別にファイルをいちいち分割するのが面倒なので そのまま下に書くが、文章を書くプロセスが面倒だと なかなか続かないし、億劫になる。 今はメニューもカテゴリ別分けているけど、 正直そういうものは人間がタグを振る程度にして後は 機械にお任せしたい。 人間は書く事になるべく専念して他の事にあまりリソースを 割かれるような事は避けたい。 org-modeだとC-camでtagを指定すればそのタグの文章一覧が 表示されるが、それに似たものを作れればいいなと 現段階では漠然と思う。grep的な何かか?