* [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的な何かか?