y2q_actionman’s ゴミクズチラ裏

内向きのメモ書きを置いてます

プログラミング

CFFIの"CFFI-Wrapper"という隠し機能について

この記事は、Lisp Advent Calendar 2016 の22日目の記事として書かれました。 CFFIには、 CFFI-Wrapper という undocumented な機能があります。 Undocumented な機能ということで使用がはばかられますが、僕がかつて cl-libnuma のFFI バインディングを書い…

Mathematicaのオブジェクト指向的機能をCommon Lispで真似てみた。

背景 先日、7月30日の Lisp Meet Up presented by Shibuya.lisp #42 - connpass において、「Mathematicaとオブジェクト指向について」という発表がありました。 そこでは、 Mathematica の機能を利用した、オブジェクト指向的な機能が提示されており、私は…

Unicode 圧縮を実装した

概要 Standard Compression Scheme for Unicode (UTS #6: Compression Scheme for Unicode) を Common Lisp で実装しました。 github.com ここに至った経緯は以下のようになってます。 仕事で使えそうかなと思って調べた。でも使わなかった。 検索する限りだ…

細かすぎて使いどころがなさそうな Common Lisp の最適化ネタ

この文章は、 Lisp Advent Calendar 2015 - Qiita の記事として書かれました。 以下のコードは、平方根を取る関数 SQRT を呼び出すだけの関数を定義しています。 (defun hoge (n) (declare (optimize (speed 3) (safety 0) (debug 0)) (type double-float n)…

今日のバグ

前書き 今日も今日とて、バグった Common Lisp コードを走らせてしまい、 SBCL を落としてしまいました。 自省のために一筆書きます。 対象のバージョンは以下です。 SBCL 1.2.4-2ubuntu1 (Ubuntu Linux 15.04 上。 2015-09-30 時点での apt 上の最新) SBCL …

Common Lisp の iterate の拡張計画メモ

概要 Python の itertools を Common Lisp の iterate に持っていこうとしてみたら、最初の方の chain で足止め。どうしよう。 なぜ? 1) Python の itertools は、色々なコレクション型に適用できるイテレータがあることが前提。 Common Lisp には、汎用の…

Common Lisp 漢数字プリンタ 実装終了

Common Lisp で漢数字プリンタをちまちまと作っていたのですが ( Common Lisp 漢数字プリンタの試みのメモ - y2q_actionman’s ゴミクズチラ裏 )、ついに終わらせてしまうことにしました。 y2q-actionman/jp-numeralgithub.com くだらない機能を盛り込んだの…

Common Lisp 漢数字プリンタの試みのメモ

Common Lisp の format で漢数字を出すという遊びをしているのだけれど、ちゃんとやろうとすると意外と面倒で困ったので、いくつかメモ github.com 文字エンコーディング 1020 を示す "𥝱" という文字が、 Unicode で U+25771 という位置にある。 Unicode の…

Common Lisp 用の libnuma の binding を書きました

Linux で NUMA 環境をユーザプログラムから扱うための C ライブラリである libnuma の Common Lisp 向け binding として、 cl-libnuma というものを書きました。 レポジトリはこちらです : https://bitbucket.org/y2q_actionman/cl-libnuma これを書いた動機…