Source of Nothingness

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* 2008-04-23 :

ステータスバーの表示をいじるね〜
どんな情報があったらうれしいのだろうか。
モード行もあるしな〜
(start-timer 1.0 #'(lambda ()
                     (when (string= "T" *status-bar-format*)
                       (winapi:SendMessage (winapi:FindWindowEx (get-window-handle) 0 (si:make-string-chunk "msctls_statusbar32") 0)
                                           #x0401 1 (si:make-string-chunk " --/--(--) --:-- ")))))

* xyzzy topic : 第七回xyzzyオフ会

http://mixi.jp/view_event.pl?id=29769602&comm_id=30848
http://raido.sakura.ne.jp/southly/xyzzy/xyzzy-off7.png

第七回オフ会です。

「お酒を飲みつつお話しましょう」といった趣旨で行います。
集合場所はJR上野駅中央改札前辺り(目印として「入門xyzzy」を持って立ってます)
集合時刻は18:00
開催場所は未定です。(2008-04-13現在)

参加表明してくださった方には募集期限である5/20にNANRIの連絡先をお送りします。
参加表明・質問・その他はNANRIまで メール or mixi などでどうぞ。

* 2008-04-22 : (ni-view xyzzy:*packages*) の件

* Scrapbook : reddit.com: Ask reddit: Tutorial for writing a Lisp interpreter?

 http://reddit.com/info/6ehu9/comments/

* 2008-04-17 :

* Common Lisp : 関数とマクロとスペシャルフォームの違い

http://d.hatena.ne.jp/pgf2/20080415/1208269126
ざっくりとした違いは関数は全ての引数が評価される、マクロとスペシャルフォームはそうとは限らないという点です。
関数が評価されるときは、まず引数を前から順番に評価し、全部の引数を評価したらその値を用いて関数のフォームを評価するという風に評価順序が決まっています。
マクロやスペシャルフォームは、評価順序が一定でなかったり、全ての引数が評価されなかったりします。
例えばスペシャルフォームの「if」はTHEN節とELSE節のどちらか一方しか評価されません。
評価規則が決まっている関数の枠組みでは「if」は定義できないということになります。

マクロの特徴は展開できるということです。
展開形は macroexpandmacroexpand-1 で確認できます。

スペシャルフォームは「3.1.2.1.2.1 Special Forms」で挙げられているものです。
マクロとスペシャルフォームの関係は排他的ではないので、マクロでありかつスペシャルフォームというものがある実装もあるかもしれません。

まとめとして setq と set と setf の関係
(setq a "value") と (set (quote a) "value") はほぼ等価。(厳密には違います。xyzzyでその差が出るかどうかは不明)
(setq a "value") と (setf a "value") は等価。
なぜなら
(macroexpand '(setf a "value"))
=>(setq a "value")
だから。

* 2008-04-13 :

;;; 消す
(progn
  (winapi:SetWindowLong (get-window-handle)
                        winapi:GWL_STYLE
                        (logand (winapi:GetWindowLong (get-window-handle) winapi:GWL_STYLE)
                                (lognot (logior winapi:WS_CAPTION winapi:WS_SYSMENU))))
  (winapi:SetWindowPos (get-window-handle) 0 0 0 0 0 (logior winapi:SWP_NOZORDER winapi:SWP_NOSIZE winapi:SWP_NOMOVE winapi:SWP_FRAMECHANGED)))

;;; 戻す
(progn
  (winapi:SetWindowLong (get-window-handle)
                        winapi:GWL_STYLE
                        (logior (winapi:GetWindowLong (get-window-handle) winapi:GWL_STYLE) winapi:WS_CAPTION winapi:WS_SYSMENU))
  (winapi:SetWindowPos (get-window-handle) 0 0 0 0 0 (logior winapi:SWP_NOZORDER winapi:SWP_NOSIZE winapi:SWP_NOMOVE winapi:SWP_FRAMECHANGED)))

;;; ちなみにステータスバーを消そうとする
(winapi:ShowWindow (winapi:FindWindowEx (get-window-handle) 0 (si:make-string-chunk "msctls_statusbar32") 0) winapi:SW_HIDE)
xyzzyだと^\fなんて入ってなくてそのまま^Lが入っているような気がするんだけど
$XYZZY/lisp/page.l を読んでいて、なぜ以下の部分(18行目)に気付かなかったのか不思議。xyzzy のリファレンスを参照していなさそうなのも不思議。
(or (boundp 'page-delimiter)
    (setq page-delimiter "^\f"))

* memo : xyzzy lisp FFI

いつかちゃんとまとめたい。

* Scrapbook : dlisp - lisp-style string parsing library

 http://www.netfort.gr.jp/~dancer/software/dlisp.html.ja

* Scrapbook : LISPBUILDER

 http://lispbuilder.sourceforge.net/

* Scrapbook : Common Lisp in Debian

 http://pkg-common-lisp.alioth.debian.org/

* Scrapbook : Lisp/処理系 - assari

 http://www.mokehehe.com/assari/index.php?Lisp%2F%BD%E8%CD%FD%B7%CF

* 2008-03-24 :

* Common Lisp : ecl

* 2008-03-23 :