Lambdaカクテル

Common LISPが好きなWeb屋さんです 自宅サーバやフロントエンドもできます

common lisp

Common Lispでホットリロードを行うために必要な要素

SIGHUPを受け取るとリロードするという挙動はサーバプログラムによくあるものですが,Common Lispでもこれができます.しかも唯のリロードではなく,ソースコードを含めたホットリロードです. asdf:load-systemはシステムをロードするので,実行中のシステ…

Common Lispのread-lineがパイプ/リダイレクトを受け付けなくて困っている

read-lineとパイプ処理の組合せでつまづいて分からないままの箇所があるので記録する. ご存知read-lineは,ストリームから1行読み込む重要な関数だ. そしてパイプは,前のコマンドの標準出力を次のコマンドの標準入力に接続させるという,linux/unixを使っ…

Common Lispで動くブルームフィルタ作った

ブルームフィルタとは,そのフィルタに要素が登録されているかを確率的に判定し,そのフィルタに要素が登録されていないことを確実に判定できるデータ構造である.ブルームフィルタは要素が登録されているかを判定することはできるが,その要素を取り出すこ…

Common Lispライブラリ紹介: lparallel(並列化コレクションほか)

巨大なベクタやリストのmapなどはシングルコアで動作させるにはもったいないが、手動で並列化を行うのは骨が折れる作業だ。 速度面でのボトルネックになっている部分を高速化できれば,効率的に処理を行うことができる. lparallelは並列・並行処理に関する…

Common Lisp開発序ノ口 〜プロジェクトの作成と実行〜

この記事は,はてなエンジニア Advent Calendar 2017の12日目の記事です。 前日は id:cohalz さんによる 学生がエンジニアで仕事をして知識を増やすこと - cohаlz.hatеnablоg.сom でした。 概要 最近Common Lispで色々な実験をしています. Common Lispをは…

`UIOP:with-temporary-file` つかいどころ

使う機会があったので備忘録. https://github.com/fare/asdf/blob/master/uiop/stream.lisp に実装されて いる. with-temporary-file は,一時ファイルを作成してシンボルにパス名かスト リームを束縛する. :stream か :pathname かのどちらかを少なくと…

Docker環境のJenkinsの中でDockerコンテナを立ててRoswell(on Alpine Linux)を動かす

ひとまずテストを走らせることができたのでメモ. TL;DR RoswellはCommon Lispの処理系などの便利なラッパー. root権限でJenkinsコンテナを動かすこと Alpineはユーザまわりが弱い JenkinsfileからDockerクライアントを起動させる DockerはRoswellが動くコ…

『実践Common Lisp』買った

最近Common Lispをはじめた。昔GaucheというScheme処理系を触った(本当に触った程度だったが)ことがあり、またEmacsを使っている以上Elispを書くこともしばしばであったのでLispにはある程度親近感があったのだが、Common Lispで開発したことはなかったし、…

Common LISP環境構築メモ(SBCL, Quicklisp, ASDF2, SLIME)

備忘録としてのメモ. Common LISPは実用的とよく言われるが触ったことがなかったので,学習してみようと思った. 今回は環境構築をやる. 追記 2017/04/07 Roswellについて追記 目次 追記 目次 処理系インストール Hello, World Quicklisp(ライブラリマネー…