-
[Common Lisp][Zetalisp]ZetalispのPKG-BIND
g000001 09/11 23:47:10
LispマシンのLISPであるZetalisp/Lisp machine lispには、PKG-BINDというのがあって のように指定した範囲だけパッケージが指定できます。 パッケージの仕組みからして違うのでそもそもCLで再現できるのか分からないのですが、今日Twitterでやりとりをしている中でS式を一旦文字列にしてREAD-FROM-STRINGすれば良いかと思い みたいなものを作成しました。 ZetalispのPKG-BINDが入れ子にできるのかどうか不明なのですが、とりあえず入れ子に対応。 ...
-
[Design Patterns][Common Lisp][MOP]CLとデザインパターン - Singleton
g000001 12/02 15:35:56
今回はSingletonパターンです。 一つのクラスにつきインスタンスを一つしか作らないことを保証するようなパターンとのこと。 GaucheのMOP周りを眺めていて、MOPでSingletonを実現している例があったので(gauche.mop.singleton) これを移植しつつ考えてみることにしました。 内容としては、 Singleton用のメタクラスを作成して、そのスロットに一つだけのインスタンスが保持されるようにする、というものでCLでもそのまま行けそうです。 しかし、大まかには真似できたんですが ...
-
[*standard-output*][MacLISP]謎のこだわり 'Tと()
g000001 10/08 00:22:47
全く誰も興味がない話題だと思うのですが、MacLISPのソースコードを眺めているとどういう訳か、NILという表記が少なく、()と書かれている割合が多いようです。 そして、Tは、クォートされて'Tと書かれていることが多い気がします。 どんな感じかというと のような感じなのですが、condのelse節に'Tが使われていて、nilと書きそうなところも()です。 どうもMacLISPのメインメンテナだったJonL White氏が触ったところは、こういう風にNIL ⇒ ()、T ⇒ 'Tのスタイルで書かれているん ...
-
[Common Lisp]lisp-criticでスタイルチェック
g000001 05/10 20:11:48
最近LISPのスタイルチェッカーに興味があって色々調べてみたりしていますが、そういえばスタイルを批評してくれるツールがどっかにあったなと思い出して探し出してセットアップしてみました。 lisp-criticというツールなのですが大学でLISPを教える際の補助ツール的なもののようです。 [http://www.cs.northwestern.edu/academics/courses/325/exercises/critic.html#critic:title=lisp-critic] どのように使うかと ...
-
[Common Lisp][StumpWM]StumpWMの日々 (3)
g000001 05/06 20:27:53
KMRCLとCiNiiのことばかりなので、久々にStumpWMのことでも書いてみようかなと思います StumpWMを使い出してからなんだかんだで3年位になろうとしていますが、いまいちどうやったら良いのか良く分からないことが結構あります。 例えば、 ウィンドウのグループ/配置を記憶しておいて、ウィンドウマネージャー起動時にお気に入りの配置に復帰させる 方法が分かりません。 ものぐさなのでこの3年間ずっと放置していましたが、ちょっと挑戦してみることにしました。 ウィンドウの配置は、 dump-desktop ...
-
[Common Lisp][CommonORBIT][Design Patterns]CommonORBITでデザインパターン - Template Method
g000001 11/18 08:06:38
MOPの良い資料や教材がないかネットを漁っているのですが、CMUのLISPリポジトリにはお宝が埋れていることが多く、AMOPの5、6章のPostScriptファイルが埋まっていたりするのですが、今日は、それ以外にも面白いものをみつけたので遊んでみることにしました。 CLといえば、やはりCLOSなのですが、CLOSに至るまでに、Flavors、CommonLoops、CommonObjects、ObjectLisp、等々、色々な団体やメーカーが各々のシステムをつくっていました。 それぞれ、背景となる思想が違 ...
-
[Uranus][Prolog][Common Lisp]UranusをANSI Common Lispで動かそう
g000001 05/20 13:10:25
最近ちょっとPrologに手を出し始めたのですが、UranusというLISP上で動く処理系が公開されていたことを思い出しました。 Uranus Prolog/KR [http://homepage1.nifty.com/~skz/Entry/uranus.html:title] こちらのページでは、オリジナルをGCLに対応させています。 このページによると、CMUのAIレポジトリでソースが公開されているようなので、 [http://www-2.cs.cmu.edu/afs/cs/project/ai-re ...
-
[CLOS][書評]bit別冊Common Lispオブジェクトシステム-CLOSとその周辺
g000001 06/06 21:38:40
書評というよりメモです。 この本は、復刊ドットコムでも100票以上を獲得していたりするのですが、 [http://www.fukkan.com/fk/VoteDetail?no=20616:title] 果して復刊したりするのか!、古本屋で見付けた方は保護して愛読するか、Amazonのマーケットプレイスにでも是非出品を! 自分は幸運なことに近所の図書館で借りられるのですが、ひさびさに借りたついでにちょっとエントリにすることにしました。 とりあえず、この本の大体の構成ですが、 第I部 1章 CLOS概説 ( ...
-
[Common Lisp]Common Lispで日常のテキスト処理
g000001 12/12 19:05:44
いよいよ今日は[http://atnd.org/events/2526:title=LISP365]の最終日です。 LISP365のHTMLから参加者のエントリーの情報を抜き出して加工し、次のまとめエントリーにしようと考えているのですが、ついでなので、そういう自分の日常作業手順を書いてみようかなと思います。 データを取得 HTTPクライアントでスクレイピング、という感じが多いと思うのですが、今回は、エントリーの必要な部分だけファイルにコピペで抜き出しました。 コメントのHTMLにミスがあったりするため少 ...
-
[Common Lisp][quicklisp]Quicklisp素晴しい!
g000001 10/09 16:02:40
Quicklispは、Common Lispのライブラリ導入システムです。 構想が発表されたときには、clbuildや、asdf-install、中止されたmudball等々沢山あるのに、更にまた来るのか、と思いましたが、Quicklispはこれらのシステムの抱える問題を解決する狙いもあるようです。 主なところだと、 Windowsを含めてのOSのマルチプラットフォーム対応 ライブラリの依存関係の解消(バージョンの問題も含む) ライブラリの配布先のサイトがダウンしておりインストールできない問題の解消 ...
-
State-Based Scripting in Uncharted 2: Among Thieves
mokehehe 11/15 00:00:00
via [http://d.hatena.ne.jp/yakiimo02/20091115/1258265444:title]: [http://www.gameenginebook.com/coursemat.html:title=State-Based Scripting in Uncharted 2: Among Thieves] うぉぉぉ!Uncharted 2のゲームで使われてるスクリプトの話。 PLT Schemeがベース defun とか出てくるけど? シンボルじゃなく、文字列を使って ...
-
[abcl][abcl/1][abcl/r2]ABCL/1 ABCL/R2をビルドする
g000001 07/26 23:30:37
今回のABCLは、JVM上で動くCL処理系ではなくて、LISPベースの並列オブジェクト指向言語の方です。 今日、deliciousから流れてくるLISP関係のものを眺めていて、 [http://venus.is.s.u-tokyo.ac.jp/pub/abcl-info/abcl-implementations.text:title=ABCL implementations list] というのをみつけました。 中に配布されているソースが書かれているのですが、もしかしてと思って、上のディレクトリを覗いてみ ...
-
[Help me, hackers!][*Lisp]*LispのシミュレーターをSBCLで動くようにする
g000001 05/30 14:08:01
[http://twitter.com/machida:title=@machida]さんと、[http://twitter.com/komagata:title=@komagata]さんの会社[http://fjord.jp/:title]が運営しているHelp me, hackers!というサービスがあります。 [http://help-me-hackers.com/:title] 自由に管理したいタスクを登録して、さらには通りすがりのハッカーに辻解決してもらえるかもしれないという素敵なサービスです。 ...
-
[Common Lisp]この先一年の年間ドッグフーディング
g000001 10/31 00:51:45
先日までは、「コードは大文字で書く」というのを一年間試してみました。 ちなみに、これは特に実りもありませんでしたが、今年は、 「繰り返し構文はSeriesしか使わない」 で行きます。誰得宣言ですが。 Seriesを常用する上で色々と障害はあるのですが、この辺りをどう解決するかを体験してみます。 ということで、githubに自分の拡張ユーティリティを作成してみることにしました。 [http://github.com/g000001/series-ext:title] 来年Seriesに対してどういう考えにな ...
-
[ELIS][TAO]ELIS復活祭メモ(1) (!(member ...))の謎
g000001 08/10 22:31:37
もっと時系列に並んだ体系的な記録を書きたいところですが、とりあえず断片的にでも書いてゆきます。 ELISの論文を読んでいたときに、 のようになるのが非常に不思議だったので、これを実機で試してきました! 結果として、実際にこういう風になりました。 Common Lispでも、CARを挟んでやれば、 となります。 TAOでも、 という風に同じ結果になりました。 CLでこういう動作を追加する場合、defsetfなどで追加できます。 これで、 とも書けます。 恐らくですが、TAO/ELISでも、こういっ ...
-
[github][Shibuya.lisp]Shibuya.lispという名前でCLのユーティリティ集を始めてみました
g000001 01/01 21:10:45
自分は、ユーティリティ集が大好きなのですが、つねづね自分でも作ってみたいと思っていました。 最近Githubがはやっているので、ここで皆でごちゃごちゃ作ると楽しいのではないかなと思い、Shibuya.lispという人が釣れそうな名前で行くことにしてみました。 勝手に名付けて怒られそうですが、許して下さい。 自分で考えた俺構文や、便利関数も普段から使ってみないと良いアイデアなのか分からないことが多いので、それなりにライブラリに纒めて簡単に使えるようにしておきたい。 自作のユーティリティだとブログ等に書く際に ...
-
[Common Lisp]引数の順番を覚えられないならELTを使えば良いじゃない!
g000001 06/30 23:40:08
Common Lispには、シーケンスのN番目の要素を取り出すのに、リスト専用ならNTH、ベクタならSVREFとかAREF、文字列ならCHAR、そして汎用には、ELTがありますが、NTHだけ順番が違っていたりする所為で、「おや、どっちの引数がインデックスだったかな」などと記憶が朧げになることがあります。(引数の順番が色々違うのは恐らく歴史的経緯+互換性のため) そこで、とりあえず、ELTで書いて処理系の最適化に期待してみるのはどうかなと思い試してみました。 試した処理系はSBCLです。 まず、最初に最適化 ...
-
[Common Lisp]common-lisp-users.jp 稼動させました
g000001 07/05 01:03:57
2008年の*-users.jpブームから2年程経過しましたが、いまさらのcommon-lisp-users.jpを作成してみました。 [http://common-lisp-users.jp:title] wikiなのでどなたでも書き込めます。 いろいろなCommon Lispまとめサイトと被るところが多い気がするんですが、FAQとか充実させてみたいですねー。 ちなみに、WikiならCommon LispのCLikiを使いたい!と思ったのですが、Wilikiです。 ■
-
[Common Lisp]みんなでLISPのウェブアプリを作る場所が欲しい
g000001 05/23 19:33:19
phpやperl、ruby等は気軽に個人で廉価なレンタルサーバーを借りてウェブアプリを作成して楽しむことができると思うのですが、Common Lispは、スクリプト言語的な使われ方は苦手で、大抵の廉価なサーバーでは満足に動かせないか、作れても遅かったりしてのびのびとLISP的に書けないことが多いのではないかと思います。 実際、Common Lispでは、サーバーからCommon Lispで組んでいくというスタイルが多いようで、CLのウェブサーバーもありますし、フレームワークも幾つかあります。 そうなってく ...
-
[Lispマシン][Emacs][*standard-output*]electric-shift-lock-mode
g000001 09/21 23:52:40
70年代後半位までLISPのソースは大文字で書かれているものが多いのですが、70年代後半に登場したLispマシンのエディタ(ZWEI/Zmacs)にも、そんな時代を反映した、Electric Shift Lockという機能があります。 これは、CAPSキーをオンにしてくれるようなモードで、Shiftを押さない状態が大文字、逆にShiftを押すと小文字というモードです。 気が効いているのは、文字列やコメント等、大文字と小文字を区別する必要がある場所では、通常通りShift押下で大文字になるというところ。 ...
-
[Common Lisp]Xで良い
g000001 01/18 00:22:50
LISPを普段から読んだり書いたりしてる方は、LAMBDAを書くことも多いと思います。 自分が好きで読んでいるソースは比較的古いMacLISPや、Lispマシンのものが多いのですが、今も昔もLAMBDAの引数の変数名については非常に適当な付け方をしているように感じます。 その中でも実感としては、圧倒的にXが多い筈と思っていたのですが、ふとGoogle Code Searchで調べてみる気になって調べてみました。 APIを使って色々調べると面白そうなのですが、使い方が良く分からないので、とりあえず一文字変数 ...
-
[Shibuya.lisp][Hackathon]Shibuya.lisp Hackathon #1開催
g000001 10/26 21:41:56
先週の日曜日にShibuya.lispのHackathonが開催されました。 [http://atnd.org/events/7595:title] [http://twitter.com/acotie:title=@acotie]さん主催のSmiley HackathonにインスパイアされたこのHackathon、無線LAN/電源完備、という日本オラクルさんの素晴しい環境のおかげで好評のうちに終了しました。 会場を提供して頂いた日本オラクルさん、窓口となって頂いた、[http://twitter.co ...
-
[Common Lisp]リーダーマクロ使わないで"[]"を"()"として利用できるか
g000001 10/27 22:04:14
ふと、リーダーマクロを使わないで みたいなことができないものかなあと思ったので挑戦してみることにしました。 Common Lisp的には、"["も"]"も括弧としての意味はないので、例えば と書けば、 という腑分けになります。 これを単純に文字列置換で、""->"()"してやれば良いんじゃないかということで、 と書いてみました。 実行 なるほど、文字列置換だけにリテラルの中身まで置換されてしまうのですね。 ■ ということで、面倒なのでやっぱりリーダーに手を入れてみます。 実行 結局リーダーを ...
-
[Common Lisp][MSI]数理システム Common Lisp セミナ 2010-09-21
g000001 09/21 23:10:14
今日は、数理システム Common Lisp セミナでした。 会社の同僚のCLerであるquekさんと勇んで参加。 以下つらつらと感想を書きます。 (1) CLML (Common Lisp Machine Learning) の紹介 講師: 黒田寿男 (Mathematical Systems Inc.) 時間: 13:30 〜 13:45 黒田さんによるCLMLの概略の説明。 RやS-Plusがあるのに、なぜ、新たに開発したかというと、CLからネイティブに使えることなどが、CLerには嬉しいとのこと。 ...
-
[SLIME][Dylan][Common Lisp]SLIMEとLTDを使ってCLのコードをDylanに変換して表示する
g000001 05/12 19:06:34
まったくもって誰も興味がなさそうなエントリーですが、LTDとSLIMEを組み合わせてみたら面白いかなと思い、組み合わせて遊んでみました。 LTDは、最近翻訳された「実用Common Lisp」の著者であるPeter Norvig氏が作成したCommon LispをDylanに変換するツールです。 [http://norvig.com/ltd/doc/ltd.html:title] SLIMEで のようなCLのコード上でslime-ltdすると のように別枠のバッファにDylanに変換され表示されるよう ...
-
[Common Lisp]Planet Common Lisp 日本 超手抜き版 作ってみました
g000001 08/19 01:01:18
[http://common-lisp-users.jp/:title=common-lisp-users.jp] をたててみてから早2ヶ月くらい経過するのですが、いまいちやる気もなく放置気味です。 そもそもJPドメインを取る意義としては、提唱者によればSEO狙いらしかったのですが、common lisp users jp でググっても一番上にはでてこない始末w これでは、JPドメインで運用する意味がないので、何か楽な打開策ないかなあとTwitterでぼやいていたところ@komagataさんより、Plan ...
-
[Hackathon]Smiley Hackathon #9に参加してきました!
g000001 08/22 00:05:40
昨日8/21(土)に[http://atnd.org/events/5975:title=Smiley Hackathon #9]またまた参加させて頂きました! 今回も主催の d:id:acotie さん #9会場提供のOracleさんありがとうございました。 自分は、#4、#5、#6、#7と参加しているので、今回で、5回目。そういえば、前回の#8はShibuya.lisp TT#5と日が被っていて参加できなかったんですねー。 やってたこと 3ヶ月位前のSLIMEのアップデートにより、自分の便利SLIM ...
-
[Common Lisp][KMRCL]KMRCLを眺める(158) IF*
g000001 05/29 18:41:26
web-utils.lispも眺め終わったので、次のファイルということで、今回は、[http://www.cliki.net/kmrcl:title=KMRCL]のifstar.lispからIF*です。 if*は、KMRCLで定義されているというよりは、Franz社がパブリックドメインで公開しているもので、KMRCL内でもexportはされていません。 kmr氏はAllegro CLを良く使っているのか、Allegro向けの定義が良く見掛けられます。 if*なんて邪道、という意見も聞いたことがあるのですが ...
-
[github][Common Lisp]Githubを利用して普段のLISP開発環境を晒してみたらどうか
g000001 06/27 12:05:49
Githubにソースを上げるとtarボールにしてダウンロードできるリンクができるのですが、都合の良いことに、asdf-installは、ウェブ上のtarボールのURLを指定してインストールすることが可能です。 割と重宝するのですが、これを利用して、Github上に普段のLISP開発環境を登録したら面白いかもしれないと思いました。 具体的には、普段作業で利用しているのは、大抵、CL-USERパッケージだと思いますが、これを自分のGithubのアカウント名と同じ名でパッケージ化し、Githubに上げます。 G ...
-
[Emacs]prognを活用しよう(Emacs Advent Calendar jp:2010)
g000001 12/01 11:21:54
こんにちは、今年もEmacs Advent Calendarの季節です! Emacsのちょっとした便利機能を紹介しようと思って色々考えたのですが、誰でも使えそうなtipsということで、今回は、.emacsを設定したい編集したりする際に便利に使えそうな progn の使い方を紹介したいと思います。 .emacsに色々設定を追加していくと、関連する項目をまとめたくなることがあります。 そういう時は、 という風に見出しを付けて編集しやすくしたりすると思うのですが、ここで、progn を使って関連の項目を一つの ...
-
[Lisperのたのしみ]gensymのリスト
g000001 05/03 11:58:59
当初、気の効いたイディオムを探索するという趣旨でしたが、見付けようと思ってもなかなか見付からないので、適当にイディオムを探してエントリを書くことにしました(^^; さて、CLのマクロを書いていると、変数のリストと同じ長さのgensymのリストが欲しくなることがあると思います。 そこに焦点を当てて人間模様を観察してみたいと思います。 とりあえず、 としておきます。 (1)Paul Graham氏 アンチloopの人なので、mapcarで。 declareあり、45文字。なしは、31文字 (2)適当に変 ...
-
[Common Lisp][KMRCL]KMRCLを眺める (33) MKLIST
g000001 12/08 23:44:42
前回で[http://www.cliki.net/kmrcl:title=KMRCL]のmacros.lispの中は全部眺めました。 このままKRMCL全部を眺めるのも如何なものか、と思ったのですが、暇なので全部眺めてみようと思います。 ということで、lists.lispに突入です。一ヶ月位リスト関係のユーティリティが続きます。 今回は、そのlists.lisp.の中からMKLISTです。 定義をみれば動作は、すぐ分かると思いますが、 引数がアトムの時には、listで包み、そうでなければ、渡された引数を ...
-
[Common Lisp][KMRCL]KMRCLを眺める (63) STREAM-SUBST
g000001 01/12 23:17:48
今回は[http://www.cliki.net/kmrcl:title=KMRCL]のio.lisp中からSTREAM-SUBSTです。 順番どおりだと、STREAM-SUBSTはもう少し後になるのですが、以降は、中でSTREAM-SUBSTを使っているのがあるので、先に読むことにしました。 まず、バッファを構造体で定義し、操作する関数群を定義しています。 こんな感じです。 自分的には、いまいち動作と関数名の印象が微妙に一致しないので読み辛い気がしました。 このbrefを利用して、stream-sub ...
-
[Common Lisp][KMRCL]KMRCLを眺める(145) SPLIT-ALPHANUMERIC-STRING
g000001 04/27 14:07:12
今回は[http://www.cliki.net/kmrcl:title=KMRCL]のstrings.lispから、SPLIT-ALPHANUMERIC-STRINGです。 前回の LEX-STRING はデリミタが空白/改行文字でしたが、今回は、 non alpanumetricな文字が区切りになります というところです。 定義も殆ど同じで、LEX-STRINGと2行位違うだけで となっています。 ■ なんとなく、コピペ的に似たような関数を書くよりは、区切りを判定する関数を受けとる関数を書く方すっ ...
-
[Common Lisp][KMRCL]KMRCLを眺める(229) SCORE-MULTIWORD-MATCH
g000001 11/26 23:51:38
xml-utils.lispも眺め終えたので、今回は[http://www.cliki.net/kmrcl:title=KMRCL]のstrmatch.lispから、SCORE-MULTIWORD-MATCHです。 名前からすると、与えられた引数の文字列の類似度を測定する関数のようです。 定義は、 となっていますが、どうも自分には、使い方がいまいち不明でした 有名なアルゴリズムだったりするのでしょうか。 ■
-
[Common Lisp]2日間まるごとLISPセミナー 2010 2日目
g000001 11/19 23:28:19
毎年開催されている数理システム/Franz開催のセミナー2日目に行ってきました。 2日目は毎年セミナーというよりは、事例紹介が多いようです。 (1) 射程内に入った実時間ごみ集め(竹内郁雄/東京大学名誉教授) 10年程前にTAO/SILENTで実際に実装したハードリアルタイムのGCについてのお話でした。 「LISPはGCをまじめにやれば実時間処理に使える!」とのことで、並列GCの実装戦略や、経験談を交えて解説されていました。 まとめとして、LISPに実時間処理がつけば鬼に金棒 それは必ず実現する! とのし ...
-
[Common Lisp]2日間まるごとLISPセミナー 2010 1日目
g000001 11/18 23:44:20
毎年開催されている数理システム/Franz開催のセミナーに行ってきました。 メモを取りつつきいていたのですが、まとめる時間がないので、今回はざっくり書きたいと思います。 あとで、詳しく書きたいと思っています。 (1) セマンティックWeb入門 講師: 黒田寿男 (Mathematical Systems Inc.) 時間: 13:00 〜 14:00 次の (2) Common Lisp と Prolog を使ったセマンティックWeb開発 の準備的な内容ということで、セマンティックウェブについての入 ...
-
[Common Lisp]同じ年月は同じグループとしてカウントして数を求める例でのコード比較を Common Lisp でも
g000001 11/13 22:05:56
[http://blog.fukaoi.org/2010/10/12/Scala%E3%80%81Java%E3%80%81PHP%E3%81%A7%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%87%8F%E3%82%92%E6%AF%94%E8%BC%83%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B:title] sumimさんの[http://d.hatena.ne.jp/sumim/ ...
-
[Lisperのたのしみ]10分でコーディング x 2 〜リストの破壊的操作篇〜
g000001 05/21 21:36:02
今日の問題はかなり簡単です。 できるだけ短い時間でエレガントなコードを書きましょう。 あまりに簡単なので制限時間を10分としてやってみてください。 これ以上かかった人は 自分はLisperの癖にかなり破壊的リスト操作プログラミングができない。 とつらい事実を認識しましょう。 そして、これからすごくなりましょう。 では、10分だけこの問題に付き合ってみてください。 スタート!! >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> その1(nalist-to ...
-
[Zwei][Emacs]EmacsのBackward Up Listの動きが気に入らない
g000001 10/16 22:30:34
自分は、EmacsではLISPコード編集に限らずS式編集のキーバインドを良く使う程、S式編集のキーバインドが好きなのですが、backward-up-listの動きがどうも気に入りません。 具体的には、文字列の上で実行するとエラーになってしまうのが気に入らないポイントです。 LispマシンのエディタだったZmacs(Zwei)では、文字列の上で実行すると両端のダブルクォートを括弧と見做したような動きになります。 こっちの方が快適なのでこの動きをデフォルトにしてみたいところ。 とりあえず、Zweiはどうやって ...
-
[Common Lisp]LISPイメージにとにかくなんでも入れて置くと便利
g000001 11/10 22:46:31
今日Twitterで「CLで(Tue Nov 10 05:15:05 +0000 2009)のような日付をパーズするライブラリを探している」というつぶやきを見付けました。 自分はこういう場合にはどうやって目的のものを探すかというと、 とりあえず、slime-apropos(C-c C-d a)する キーワードは、パーズということなので、parse 自分は、手元のパッケージをあるだけ詰め込んだイメージを常用しているので、沢山引っ掛かってくる 一覧が表示されるので、そこからdate等で絞り込む。 M ...
-
[Common Lisp][KMRCL]KMRCLを眺める(207) CMSG
g000001 09/28 23:24:16
random.lispも眺め終えたので、今回は、[http://www.cliki.net/kmrcl:title=KMRCL]のconsole.lispからCMSGです。 console.lispはその名の通りコンソールでなにかするため(主にログを出力したり)のユーティリティの用です。 CMSGの定義は、 となっていて、*CONSOLE-MSGS*の値で出力したりしなかったりを制御できるようにしてあり、あとは先頭にコメントの;; を付けるというシンプルなものです。 FORMATに投げているので、FO ...
-
[xyzyy] オートインデントはどうやってるのか
mokehehe 07/28 00:00:00
テキストエディタでLispの自動インデントをどうやっているのか知りたい。あわよくばJavaScriptに持っていってブラウザのフォームに組み込んで、BiwaSchemeで使えるようにしたい。 xyzzyのソースを追ってみる。 リターンキーにバインドされた関数を調べる M-x describe-bindings ... TAB lisp-indent-line RET lisp-newline-and-indent lisp-n ...
-
[プログラミングGauche]CLで学ぶ「プログラミングGauche」 (9.7)
g000001 08/12 20:58:18
9.7 準クォート 準クォートの扱いもCLとGaucheとであまり違いはないかと思います。 あまり使用されませんが、CLの場合は、,@以外に、,.のようなものがあり、,@がリストをappend的につくけるのに対し、,.は、nconc的にくつけます。 また、古いコードでは、,@の代りに`(foo . ,bar)と書いたコードも良く見かけます。当然といえば、当然なのですが、これは、,@と違ってリストの最後の要素になった時にしか使えません。 ドットとコンマはくつけて書けるので、.,fooの様に書いていることも ...
-
[Common Lisp][KMRCL]KMRCLを眺める(162) _F
g000001 06/10 20:16:46
今回は、[http://www.cliki.net/kmrcl:title=KMRCL]のfunctions.lispから_Fです。 実装を眺める限り、_FのFはSETFのFから来ているようです。 という風にGET-SETF-EXPANSIONを使っています 使い方は、APPENDFを例にすると、 というところを と書けます。 _Fは、Arcいうzapと同じ動きですね。 TAOにもこういうのがあって、 と書けます。 TAOは、任意に!で代入先を指示できたりするので、より高機能! ■
-
.NET FrameworkのClispサンプル
mokehehe 05/01 00:00:00
WindowsでC#を少し使い出して、なかなか便利だなぁと思い始めていたところ。.NETって動作結構速くてどうなってるのかなぁと調べてると、MSIL(Microsoft Intermediate Language)というらしい。 JITできる [http://www.asukaze.net/etc/cil/opcode.html:title=CIL(MSIL) Opcode] [http://www.atelier-blue.com/program/il/il10-02.htm:title=コンパイラ、 ...
-
[勉強会][SLIME]SLIME勉強会@新宿 4/26 (土) 13:00〜20:00 (2)
g000001 04/27 03:32:02
SLIMEを使う 便利機能紹介 ここで紹介している機能のEMACSでの基本キーバインドに関しては、tszさんが分かりやすい一覧表で纏められていますので、そちらも参照して下さい! [http://d.hatena.ne.jp/tsz/20080426/1209230472:title] 式の評価 slime-pprint-eval-last-expression C-c C-p便利。これを基本に使っても良いかも。 C-c C-cでコンパイル。 コンパイルしてエラーの個所を表示してくれる。 エラーになってい ...
-
[loop][style] loop でうまく書けないこと
lkozima 03/27 21:22:01
こんなような loop が書きたいなー,と思うことが時々ありますが書けなくて悲しい。 やりたいことは リストの要素 x とそのインデックス i について たまにしか成立しないある条件を満たすときに 実行に時間のかかる計算をして その結果からさらに計算して得られる値をリストに格納しつつ ついでに最適化のためのごちゃごちゃした処理もする で,自然に書くと上のようにしたくなるんですけど,as は if の後に書けないので怒られます。 しょうがないので とか,なんかいまいちだなーと思 ...
-
[golf] あなごる
lkozima 02/25 23:52:53
二問ほど。例によって没になったコードを晒すなど。 normal distribution table erf っていう関数があるのを見つけて,なんだこれで楽勝じゃんと思ったら整形するのが面倒っていう。 頑張って format 一個で書いたら余計長くなったりしました。 きっと一週間後には読めない。 practical numbers とりあえず embed してみたけどそんなに短くならなかったり。 他の人たちが随分短いので「どうやるんだよわかんねーよ」的なことを後で書こうと思って ...
-
[Clojure][L-99]ClojureでL-99 (P18 範囲切り出し)
g000001 10/06 21:31:49
[http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html:title] Clojureには標準でsubseqがあります。
-
[Common Lisp][ABCL]ABCLをソースからビルドするためのメモ
g000001 04/05 19:17:13
※antを使う方法が一番楽なようです [http://cadr.g.hatena.ne.jp/g000001/20100121/1264005391:title] 今日、ABCLの0.14.0がリリースされたようです。 リリース頻度が随分高くなっているように思えるのですが、やはり同じJVM上で動くClojureに負けてられないということなのでしょうか(*'-') それはさておき、毎回ソースからビルドするたびに手順を忘れるのでメモ customizations.lispを作成 他のCL処理系でビル ...
-
[試してみましょう][ABCL]ABCL 0.0.10をインストールしてみる
g000001 01/07 17:31:01
※antを使う方法が一番楽なようです [http://cadr.g.hatena.ne.jp/g000001/20100121/1264005391:title] 私は、割とOSや処理系のインスコ厨です。 特に使う目的もない処理系をインストールして、それで満足して終了、ということを繰り返しているのですが、今回は、ABCLをインストールしてみることにしました。 ABCLはJavaVM上で動くCommon Lispの処理系です。 [http://armedbear.org/:title] [http://c ...
-
[Shibuya.lisp]Schemeコードバトンに参加しました
g000001 01/11 19:12:46
[http://d.hatena.ne.jp/higepon/20100110/1263121990:title] 前回CLでフォークしたと書いてましたが、具体的にどういう風に変更したか、さっぱり書いてなかったので追記します! higeponさんから最初のバトンを渡されました(CLにフォークしました) 渡されたバトン http://gist.github.com/273431 次はaka([http://aka-cs-blog.blogspot.com/:title])さんへ 渡したバトン htt ...
-
[Shibuya.lisp]Schemeコードバトンに参加しました R6RS編
g000001 01/11 23:06:22
[http://d.hatena.ne.jp/higepon/20100110/1263121990:title] yshigeruさんからのバトン。 CLでフォークしやつ以外の本流のR6RSのバージョンも回ってきてしまいました。 最初、処理系は、Larcenyにしてみようかなと思いましたが、SRFI-37がなく、今迄の変更の良いところがなくなるのでとりやめ。 渡されたバトン http://gist.github.com/274151 次はmasa_edw([http://d.hatena.ne.jp ...
-
[Shibuya.lisp]第1回 Scheme コードバトンのお知らせ
g000001 01/10 20:47:30
[http://d.hatena.ne.jp/higepon/20100110/1263121990:title] higeponさん曰く、 とのことだったので、CLの流れでフォークしました。 現在 higepon -> g000001(CL) とバトンが渡っています。 (Scheme->Schemeは、higepon -> yadokarielectric とバトンが渡っています。 ) ここから、Arcに流すか、Clojureに流すか、CLに流れるか、Emacs Lispになるか、は謎です。 も ...
-
[Shibuya.lisp]Shibuya.lisp に向けて Scheme コードバトンするのはどうか?
g000001 01/09 19:33:20
higeponさんが、[http://d.hatena.ne.jp/higepon/20100109/1263013870:title=Shibuya.lisp に向けて Scheme コードバトンするのはどうか?]とのことだったので、R6RS SchemeをCLに適当翻訳。 もとのコードに少し機能拡張を加えていながら、gotoや&auxを使っていたりして下品な風味に仕上げました。 やる気のある方は、是非、綺麗に書き直してみて下さい! 実行例 dict.lispの中身 ちなみに、ご覧の通り、シェルか ...