uvbook -- libuvの仕組みとidle-basicの解説

libuvのチュートリアルuvbook,第2節のIdlingプログラムを解説します.libuvはNode.jsの根幹部分を担うCライブラリです.IdlingプログラムのLispによる実装例は後ほど別ページとして投稿します.間違い,コメント等は@waterloo_jpまで. 下のコードは,uvbookのIdleハンドル使用例です.ここでは下のコード例を追いながら,Idleハンドルの使い方と,libuv .... »

uvbook for Lisp -- Hello World

ここでは,libuvのチュートリアル本,uvbookの第2.2節に載っている以下のHello WorldコードをLispで実装する手順を解説します.まず始めにCFFIを使って直接libuvの関数を呼び出す方法を解説し,最後にlibuvラッパーのcl-libuvを使った実装方法を解説します.間違い,コメント等ありましたら,@waterloo_jpまでお願いします. .... »

Lispのパッケージ管理入門.Quicklisp,ASDF,Roswellの違いなど

Lispを始めたばかりで,まだ規模の大きいプログラムを書いていないため,パッケージ管理やらライブラリの依存関係解決などわからないことだらけで,QuicklispやASDF,CIM,Roswell等,色々調べました.包括的かつ初心者に優しいリソースがなく,最初は苦労しました.解説がどれも各ツールの使い方に特化していて,他のツールの関係や,どのツールが必要で,どの機能が重複しているかなどの解説がなかっ .... »

「対話によるCommon Lisp入門」第6話まとめノート

本章ではリスト処理を行う関数を再帰を使って書く練習をしながら,関数の処理時間の見積もり方と最適なコードのへの書き換え方を学ぶ.本ページではまず第5話と6話の間に挿入されたLispのコンパイル方法と,第6話で説明されている関数のトレースの仕方についてまとめ,その後,処理時間の見積もり方と,効率的なコードへの書き換えについてまとめる. Lispのコンパイル方法 REPLで作業をしている時,定義済みの関数や .... »

「対話によるCommon Lisp入門」第5話まとめノート

この章では再帰の基本から,末尾再帰への書き換え方について解説している.またエディタにプログラムを書いてLispインタプリタに読み込む方法も説明している. 末尾再帰とは 再帰的に定義された関数の末尾で,自分自身を呼び出した戻り値をそのままリターンする関数定義. 末尾再帰の例(ユークリッドの互除法) (defun gcd2 (m n) (if (= (mod m n) 0) n (gcd2 n (mod m n)))) 最後の行で自分自身`gcd2`への呼び出しで終わっている.すなわち,自分自身へ .... »

「対話によるCommon Lisp入門」第4話まとめノート

この章ではリストから要素を取り出す方法と,要素からリストを構築する方法について書かれている.car,cdr,cons の基本関数以外に,便利な関数が幾つか紹介されている. 要素の取り出し first, second, …​., tenth 第1要素から第10要素まで簡単に取りだす関数が用意されている. elt Element関数はリストから任意位置の要素を取り出せる.位置のインデックスは0から数える. > (elt '(0 1 2 3 4 5) 3) 3 last リストの末尾の要素を取り出す. 末 .... »

「対話によるCommon Lisp入門」第3話まとめノート

Lispのデータ型 リスト以外はアトム(1つだけ例外あり?p.24). NULL型はリストでありシンボルである. NULL型のリストは空リスト()でNILと同値. NULL型のデータはシンボルNILのみ. シンボルNILの値もNIL. フォームとデータ (p.32) Lispはプログラムもデータもリストで表現できるからややこしく見える. リストなどの表現をデータとしてではなく,プログラムのつもりで見ている時は,その表現を *フ .... »

「対話によるCommon Lisp入門」第2話まとめノート

関数と変数の作成 defun 関数定義 全ての引数は評価されない(マクロで通常の関数ではない). setf 変数への代入 変数宣言なしで新たに変数が作れる.トップレベルで使えばスペシャル変数(大域変数),関数内で使えばレキシカル変数(ローカル変数)を作れる.第1引数は評価されない(マクロで通常の関数ではない). 共通点 どちらも副作用がある.つまり処理をして値を返すだけでない. defunは関数を実行できるよう定義する副作用を持 .... »

Buffered IO or Unbuffered IO

ネットワーク越しにパケットを送受信するプログラム例を読んでいたら,Unbuffered IOのread(),write()を使用している理由が気になって調べてみた.普通のIOならシステムコールを減らすためにBuffered IOを使用するがなぜネットワークプログラミングではどの例もUnbufferedなのか?調べた結果は後でブログにまとめるとして,見つけた解説記事を載せておきます. Buffered vs unbuffered IO (stack overflow) - バッフ .... »

マイサイトの立ち上げ

約10年ほど閉鎖していた独自ドメインのサイトを立ち上げてみた.ブログには誰かの役に立ちそうな情報を,日記にはつまらないメモを書いていくつもり.いつまで続くやら. 前に使っていたのはNucleusというブログシステムだったが今回は流行に乗りWordpressを使うことにした.またサーバーもデスクトップマシンではなく,RaspberryPIを使用.かなり省エネになるんじゃないかな. 追記(2016/11/ .... »

wshito on #diary,