octahedron

LemとSKKとCommon Lispでたたかうプログラマのブログ

Lisp

Lispエイリアン壁紙をつくりました3

3年弱ぶりに新作つくりました。 ジェネラティブアートの手法を使ってつくるつもりが脱線した結果こうなりました。ついでに元の画像編集ソフトのファイルも合わせて過去の分も合わせてGitHubに置くことにしました。ライセンスどうしたらいいかわからないけど…

Hysteresis --- 値の歴史を遺す

この記事はNextremer Advent Calendar 2019の25日目の記事です。ハッピーニューイヤー!(開き直り) Hysteresis 2019年の暮れに、ひとつCommon Lispのライブラリをつくりました。これは、このライブラリのもつ値設定マクロsetfを通してシンボルに値を設定す…

CORBIT/BOOPS: プロトタイプベースオブジェクト指向を実現する拡張ライブラリ

ひょんなことから見つけた*1のでちょっと遊んでみました。 CORBITとBOOPSについて CORBIT (CommonORBIT) はCommon Lisp用のプロトタイプベースのオブジェクト指向ライブラリです。 Package: lang/lisp/oop/non_clos/corbit/ どうも、Orbitというプロトタイプ…

Clozure CLでプロファイラを利用する

2019-05-02 19:51追記 プロファイル取得用のイメージを作成する手順がありますが手順を間違えると処理の実行のたびにfaslのダンプが行われて計測結果を汚すので注意してください。イメージ作成手順にも追記します。 TL;DR Clozure CLの以下ドキュメントに書…

Common Lisp (Roswell)とDockerで実行可能ファイルをビルド

この記事はLispアドベントカレンダーの7日目の記事です。 ざっくり Common Lispの処理系マネージャ・スクリプティング環境であるRoswellとライブラリバージョン固定化ツールQlotを用いて、 Common Lispのプロジェクト(システム)の実行可能バイナリを作成し…

Common Lispと時間とタイムゾーン

Common Lispと時間とタイムゾーン この記事はLispアドベントカレンダーの4日目の記事です。 あらまし Common Lispで日時を扱う場合、ANSI仕様には日時のための関数がいくつか定められていますが極めて基本的なものしか存在しません。日時から文字列への変換…

Forthを実装する

Forthを実装する スタックベース変数いらずのふしぎなプログラミング言語、ForthをCommon Lispで実装しました。というか絶賛開発中のufというもので、これです。 github.com 執筆時点で 整数値のパース 基本的なスタック操作命令と出力 ワード(Forthにおけ…

第7回関西Lispユーザ会に行ってきた

その昔、Lispを実行することに特化したマシンがありました。Lispマシンと呼ばれたそのマシンは、当時の人工知能ブームの後押しを受けて盛んに製作されていたそうです。MIT AIラボのCONSマシンやCADRマシン、それに日本でもいくつかつくられたようです。 Lisp…

Niko --- GitHub上のメンションをSlackでお知らせ

Niko NikoというGitHub上のメンションをSlackで教えてくれるソフトウェアをつくりました。 もちろんCommon Lisp製です github.com NikoはGitHubのWebhookとして動作し、GitHub上のissueやプルリクエストの本文や、それらに対するコメントやレビューの中のメ…

Nimに入門して簡単なアプリケーションを書くまで

TL; DR Nimに入門してアプリケーションをつくるまでの道筋を書きました。 Nimってどんな言語? NimはPythonっぽい見た目をもつ、コンパイラ言語です。静的型付きで、ネイティブコードを吐き、あといちおうメタプログラミングもできるという言語です。 このsl…

Common Lispでシャレオツなアートを描いてみる

はじめに この記事は、ジェネラティブアートと呼ばれる、なんかコンピュータで生成したっぽいアーティスティックでカッコイイ画像を生成するために悪戦苦闘した、一人のプログラマの記録である。 ジェネラティブアートとは ジェネラティブ(generative, 生成…

Common Lispでyesコマンドを実装した

この記事 Haskell で yes コマンドを実装した に触発されて、yesコマンドをCommon Lispでモダンに書いてみました。 速度があまり速くなく、識者のご指摘をいただきたいところです。 2017/12/01追記 ご指摘いただけました! 後ろの方に追記しました。 コード …

Oji --- バイト列の文字境界を識別する

Ojiは文字符号化の方法が分かっているバイト列における「一文字」の範囲を識別するライブラリです。 github.com どうしよう、これ。 いちおう動機 flexi-streamsにASCII範囲外の文字を渡してstream-read-charすると、正しく一文字を認識してくれない現象を発…

Lisp GNU Lesser General Public Licenseを和訳してみた

LLGPLを和訳してみた github.com T/Oなんですが、それだけでは寂しいので経緯と概要を記しておこうと思います。 LLGPLとは Lisp (特にCommon Lispか)の事情に対応するための前文を付け足したLGPLです。LGPLについては概要、経緯ともにWikipediaの当該記事が…

One --- 手短に入出力を扱うフレームワーク

One — 手短に入出力を扱うフレームワーク Oneはファイルや標準入力に対する操作を、bashのパイプ処理のような感じで手短に記述するためのライブラリ・フレームワークです。 github.com イチの逆襲(あらまし) 時は宇宙世紀2X17年。ぼくはまだ、CSVの処理をす…

roswellで開発中プロジェクトを簡単にloadする

開発中のプロジェクトを簡単にloadできるようにするスクリプトを書きましたが、改訂の途中です。 2017/05/25 追記: roswellのサブコマンドになりました。詳細はroswellサブコマンドへの道参照 動機 ぼくはrosaやinquisitor等々ライブラリを改修するときにsli…

package-inferred-systemに期待したもの

これまでのあらすじ package-inferred-systemは、pakageのinferred-systemである。 なんだか体がだるい感じのぼくはこころに学びを沁みわたらせるため、ライブラリのパッケージをすっきりと書くことはできないか考えてみようと思った。Common Lispを書いてい…

Lispエイリアン壁紙をつくりました2

Lisp界のマスコット、Lispエイリアンの壁紙をまたつくりました。 http://f.hatena.ne.jp/t-sin/20170513011545 オリジナルサイズ 背景 以前Lispエイリアンの壁紙をつくりました。 octahedron.hatenablog.jp でも、黒いのがほしかったので、またつくりました…

Seriesで響け!ユーフォニアム!

Series触る触ると言ってたのに触ってなかったので、手始めに響けユーフォニアムをseriesでやってみました。 2017/4/29 追記 「妙なwarningが出てしまうこと」について、以下の記事の反応をいただきました。 Seriesの色々 — #:g1 この記事ではapplyでseriesを…

Rosaに謎のシリアライズ機能が登場

先日こんなものが完成しました。 octahedron.hatenablog.jp まあ用途や有用性の不明な、なんだかよくわからんプロジェクトだとぼく自身も思うわけですが、なんなんでしょうね(ぼく自身ではわりと使ってます)。 Rosaについて Rosaとは 文字列に名前を付けて…

Lispエイリアン壁紙をつくりました

TL;DR Lisp界のマスコット、Lispエイリアンの壁紙をつくりました。 同日 19:45追記; オリジナル画像がダウンロードできませんでした。笑止。 オリジナルサイズ 壁紙そのいち オリジナルサイズ 壁紙そのに 動機 Lispを愛するならば、デスクトップの壁紙もLisp…