common lisp
Pythonの(といいつつCで速度を稼いでいる)Numpyという数値計算用のライブラリがあり、広く使われているのは誰もが知るところだと思う。実際には、WebエンジニアからはPandasといったフレームワークを被せて使うことが多い。 そんな中、NumpyのCommon Lisp…
何言ってるんだという感じですがこういう感じです。 (defun find-user (username) (if (string= username "windymelt") (return-left :windymelt) (return-right "User Not Found"))) (defun check-passwd (user passwd) (if (and (eq user :windymelt) (str…
おおざっぱなタイトルすぎる。 Common LispやSchemeといったLisp族はきわめて構文の構造が簡素である,といったことはわざわざ説明の必要もないでしょう。リストとして式のASTを表現するわけです。 (defun foo (bar) (+ foo bar)) ; あらゆる構文がリスト 構…
初コーディングはCommon Lispでした。 さて、GPSというものがあります。地球を測位するやつではなく、General Problem Solverです。Generalという夢のような名前が付いていますが、このGPSは任意の形式化された記号問題を解くことができるらしいので遊んでみ…
github.com 作りました。 package-inferred-systemって何 簡単に言うと・・・ Common Lispではパッケージ名(言語上での名前空間)とモジュール(コンパイルする単位)とが分離しています 言い換えると,同じファイルにパッケージを複数入れる,といったことがで…
wwsmawaa こんばんは。id:Windymeltです。「masawada Advent Calendar 2019」22日目です。昨日はid:kazuhi_raさんの『受肉するmasawadaさん - かずひらの日記』でした。ついに3Dモデルの領域を越えて現実にその姿を現わしたid:masawadaさん。彼はこの混沌とし…
asdファイルもADDしていないとbundleしてくれないので注意しよう
競技プログラミングに初参加しました.実装言語はもちろんCommon Lispです. 残念なことにコンテスト開始からしばらくたってから気付いたので,B問までしか完成させられなかった.C問で頭をひねっていたら終了. 成績はこちら. atcoder.jp Common Lispはそ…
書いた. github.com anyenvというのはおなじみナントカenv系のツール(xxenvと呼ぶことにする)をインストールすることができるツールで,rbenvとかplenvとかをインストールすることができるのだが,なんとCommon lispの処理系であるRoswellをインストールで…
最近感じたことを列挙したお気持ちエントリです.とくに結論もオチもないです.困っているという意識だけ共有して回りの反応を見たいというエントリなので,コメントははてブなどいただけると嬉しいです. ASDF難しい エラーメッセージがけっこうわかりにく…
TL;DR Roswellで処理系を指定しても,Roswellでインストールしたコマンド類はそのコマンドをビルドしたときの処理系で実行される? シェルからコマンドを呼ばずにros runで実行するなどの手立てがある 例 Dockerで再現したがシェルで実験すると再現しないので…
まあ慣れかもしれないが,Common Lispで文字列をキーとした辞書,つまりalistやplistを作るとあまり使い勝手が良くないので避けたいと思うようになった. なぜなら標準的なリスト操作関数では比較をeqlで行うことが多い(要出展)ので,辞書構造を操作する際に…
任意の.rosファイルを変換して,AWS Lambda Custom Runtimeが受け取る.zipに変換するツールができあがったので紹介と使い方のメモを兼ねてここに書いておく. 実際に動作するランタイムは,IPv6まわりのトラブルの影響でClozureCLを使っているが,今後余裕が…
blog.3qe.us これでAWS Lambdaで動作するCommon Lispランタイムを実装したが,これを強化して,ハンドラを介してシステム内にある任意の関数を呼び出せるようにしたので紹介する. ハンドラに完全修飾した関数名を指定できる この機能もリポジトリに入れてあ…
[追記]IPv6を無効化することによりうまく動作させることができました.詳細は記事下方を参照してください. いやー来ましたね.AWS Lambdaで新言語・・・あれ?? aws.amazon.com ナンダテメッコラー!!Lambdaの名前を冠しておきながらAWS LambdaでCommon L…
この記事は,はてなエンジニアAdvent Calendar 2018の17日目の記事です.昨日はid:aerealさんによるTheSchwartzの失敗したjobとかerrorがいつどのように消えていくのか - Sexually Knowingでした. 今日ははてなでもよく使われているSmart::Argsのパーサを書…
2018年も終わろうとしているし平成ももうすぐ終わるのだが,いまだに俺の開発環境(emacs)ではperlをうまく補完することができない. とはいえdabbrevの類を使っているのでそこそこの補完は動いているのでそこはいいのだが,Smart::Argsの引数をよく間違えて…
こういうのを作りました. github.com このライブラリを使うと,(lambda (x y z) (foo x y z)) と書いていたところを ^(foo _ _ _) と書けるようになります. ちなみに名前は穴が開いたパンチカードから来ています.任意の式に穴を開けられるのでそういう名…
prologのバックトラックのように,木構造といった構造を探索して,条件にマッチしたらsignalを飛ばして,その値を採用するか・採用せずに次の値を探すか,という決定を上にやってもらう,ということをやりたい場合はどうしたらよいのだろう. 試しに,木構造…
common lispではマクロによって式を変形することでプログラムを柔軟に書くことができる.今回はリードマクロを使って,便利なデバッグプリントを実装したい. 柔軟なマクロ,それがリードマクロ 定義方法が2種類あります 普通の関数をマクロの本体に仕上げて…
qlotはライブラリを管理してくれる便利なやつだが,dockerで使うとなると忘れがちな点がいくつかあり,よくハマるのでメモしておく. qlfile まあこれは忘れないだろう.これがないとqlot installできないので,COPYする必要がある. # Dockerfile COPY qlfi…
交差するときは丸を表示する 交差しないときは表示しない こういうのを作った mf-atelier.sakura.ne.jp 上記サイトを参考にして,固定した線分と,一点がマウスで操作できる線分との交点を表示するコードを書いた. 図形描画ライブラリには lispbuilder-sdl …
lemを動かすのにちょっと苦労したのでメモ. TL;DR ros install cxxxr/lem vi ~/.roswell/lisp/quicklisp/dists/quicklisp/software/cl-charms-****/src/low-level/curses-bindings.lisp "libncursesw.so.6"を読み込んでいる箇所をコメントアウトし,libncur…
台風の風がするどい.実家の九州では珍しくもないことだが,関西でこれほどの風が吹くのは久しぶりだ. さて今回ClozureCLの日本語処理でハマったのでメモしておく. シチュエーション OSはFreeBSD 11.1 ファイルシステムはZFS 処理系はClozureCL 1.11(roswe…
Common Lispは良い言語だが,初心者が必ず陥る困りどころがいくつかあり,これで出鼻を挫かれるようなことがあってはいけないと思っている. そこで,この困りどころを提示することによって,よりよい解決方法や回避策がインターネットを通じて集ってくるの…
Better translation here: https://kvantos.github.io/#articles_en/emacs-slime/ Emacs works quite well with Common Lisp. We can use REPL and autocompletion feature connecting to new Common Lisp implementation or working implementation; SLIME …
EmacsとCommon Lispとの相性は抜群に良い. SLIMEというプラグインを使うと,Emacs上でCommon Lisp処理系を立ち上げて接続したり,既に起動している処理系に接続したりすることで,REPLや補完を動作させられる.このEmacsとCommon Lisp処理系との接続は,処…
パターンマッチングライブラリのoptimaで遊んでみた。ちょっと応用して入れ子になったリストの一部分にパターンがマッチするか検査する処理を書いてみた。将来的にはパースしたHTMLの部分マッチさせて抽出する処理に使ってみたい。 まずこういうリストがある…
tl;dr: 実装したけど限定的にしかうまく動かなかった。PerlのScope::Guardについて既に良く知っている人は、最後の節まで飛ばしてもよい。 Server::Starter読んでた サーバプロセスを起動するツールであるServer::Starterの内部がどうなっているのか知りたく…
Common LispのWebフレームワークであるCaveman 2で遊んでいる. 今日は,リクエストの前後に処理を挿入し,レスポンスヘッダをいじったりしてみるお話. ある程度Common Lispが分かりますよ,というくらいのレベル感です.僕のレベルは,マクロが書けてうれ…