1 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 11:52:46 ] lispを触ってみたい入門者のQ&A 初心者のQ&A 本スレでは恥ずかしくて聞けない人のQ&A 本スレは高度すぎて割り込めない人のQ&A linuxでなくてwindowsでやりたいんですが・・・Q&A lispを使用してC#やJAVAの代替にするための方法(おまけ) ま、ゆっくりたりましょう。 「いいものの本質は、いかなる時代においても変わらない」byパワーズ (list (url pc8.2ch.net/test/read.cgi/tech/1101386936/l50 :part 1) (url pc11.2ch.net/test/read.so/tech/1140012484/l50 :part 2) (url pc11.2ch.net/test/read.so/tech/1181479267/l50 :part 3))
149 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:00:40 ] 急速にスレの質が下がってまいりました ここらで燃料投下しとく? おk?おk?
150 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 18:22:25 ] >>149 俺が許可する 権限はないが
151 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:15:26 ] よし俺にまかせろ caddrの発音のしかたを教えてください
152 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:17:39 ] カッダー
153 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:21:16 ] じゃあcadddrは…?
154 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:22:59 ] カダッダー
155 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:07:34 ] カッダダダー
156 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:09:07 ] キャドディディアール
157 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 20:43:36 ] JavaScriptでクラス作ってみたよ。 なんかCLOSっぽいな。 >>153 キャドゥドゥドゥル
158 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:19:25 ] >>157 ソース
159 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:26:10 ] ずっとスクリプトは VBScript で書いてたんだが、Visual Studio 2008 で JavaScript をサポートする (インテルセンスとかが効くようになる) と書 いてあったので、なんかの展博の時にマイクロソフトの説明員に「もう、 VBScript は、やめるんか?」って聞いてたら、すごく困ってたがしつこく 聞いたら「まあ、そう言うことです。」と言う答えだった。 と言うことで、これからは JavaScript に転向しよう...。 って、ここ JavaScript のスレじゃなかったな、すまん。
160 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:53:32 ] 関数がATOMかどうか知りたいのですが、 (atom 'cdr) t (atom #'cdr) t 上はシンボルがATOMで、下は関数がATOMって事で良いんですよね?
161 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:43:19 ] (functionp 'cdr) nil (functionp #'cdr) t ところで、CLの半分の実装を含むCのライブラリがあるという噂を聞いたのですが どこで手に入りますかね?
162 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:51:04 ] functionpだったのか。 知らなかった。 #'が関数渡しだって事が思い出せて良かった。 161さんありがとう。 lispってたまに思い出したようにやるんで、いっつも忘れてる。
163 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 01:03:48 ] Guy Steeleって、Common LispとJavaの仕様を作ってるけど、思想的に全く別物だし、どちらが優れていると考えているんだろうね? javaの方が新しいから、SteeleはJavaの方が優れていると考えているのかもと私は思う。 Guy Steeleの頭カチ割って中見てみたい。
164 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:44:54 ] 答えはFortressで!
165 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 16:38:11 ] >>48 数値計算とかcommon lispでできるんですか? どんなコードなのかかなり興味あります lapackを呼ぶとか?
166 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:12:46 ] >>163 JavaはC++と競合させるためにつくったもので、Lispと競合するものではないって どっかでいってたよ、GLSが。 どこでいってたんだっけねえ。
167 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 17:48:28 ] 物事を脳内で比喩する時に lispで考えてしまう人は居ても Javaで行う様な人は居ないと思う。
168 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:01:29 ] >>167 オブジェクト指向はいると思う。 自分はそれです。 Lispは人生で4回は挫折しているから、Lispで考えるってことは無いな。 Lispはある程度覚えても、使わないからすぐ忘れる。再帰とかのアルゴリズムは覚えてるんだけどね。
169 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:20:48 ] >>161 ECLかな? ttp://ecls.sourceforge.net/ 素人なんでどれだけ実装できてるのかわからんのだけど ちっちゃいしWindowsでも簡単にビルドできたんで 最近これで勉強してます。 LispのコードをCに変換できるのが面白い。 あと.NETシェルで作れるHyperSpecのCHMが便利。
170 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 06:09:03 ] >>166 これ? people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg04045.html
171 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 13:07:56 ] >>170 それだったかもしれない。 でも案外いろんなところで言ってる気もする。 Frotressのインタビュッーでは、Fortressで科学計算コミュニティに JavaがCコミュニティーに果たしたような効果をもたらしたいっていってた。
172 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:19:27 ] すみません.質問です. packageのlockってどのような場合に使用するのでしょうか. また, (without-package-lock() (load "path-to-file") ... ) とするとロックが無視される?のでしょうか.
173 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:42:36 ] >>172 ご明察。その通りです。 でも、余程の事がない限りパッケージロックを破るよりは、 別にパッケージをつくったりシャドウしたりする方が良いと思われ。
174 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:07:43 ] 172です. >>173 コメントありがとうございます. Lispの場合プログラムを配布する際にはロックをかけるものなのでしょうか.
175 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 20:19:19 ] 処理系のCLパッケージのようにc再定義されると困るようなもの (carやcdrが再定義されるとこまるetc)には掛かっていますが、 普通のものには殆ど掛かっていないと思われます。 また、パッケージのロック機能自体オプションだったと思うので、 処理系依存です。
176 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 21:52:26 ] 172です. >>175 > 処理系のCLパッケージのようにc再定義されると困るようなもの なるほど,そう言うことですか. toplevelとpackageで混乱してます. もうちょっと勉強してきます. ありがとうございました.
177 名前:デフォルトの名無しさん [2008/03/21(金) 10:03:34 ] Common Lispは、Javaで言うBigDecimalのような十進数演算ができる ライブラリや関数はありますか?
178 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:18:08 ] BCD より Bignum で小数位置を適当に自分で持ってあげたほうがいいんじゃないかな。
179 名前:177 mailto:sage [2008/03/21(金) 10:50:37 ] >>178 どうもありがとうございます。 やはりそうですか。 Googleで調べてみたのですが、見つかりませんでした。
180 名前:デフォルトの名無しさん [2008/03/21(金) 11:12:05 ] 表示は変かもだけどratioで計算するのでは不満?
181 名前:177 mailto:sage [2008/03/21(金) 11:31:12 ] >>180 お金が絡むようなWebアプリに適用できるのか(簡単に書けるのか)、 調べているのですが、ratioでも適用できると思いますが、 十進数演算を素直に記述できるような標準的な ライブラリがあるのかなと思いまして。
182 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 12:06:32 ] maximaが大きい行列を実質扱うことできないと前に検索したblogに書いてあったのですが本当なのでしょうか?
183 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 19:03:50 ] 大きいの定義は。
184 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 20:28:33 ] うんこ/おしっこ
185 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 10:55:35 ] Common Lispの引数の順番は統一性がないのでしょうか? 例えば (etl オブジェクト インデックス) (gethash キー オブジェクト) となっていますが、 他の関数もこのように、てんでんばらばらなのでしょうか? 使っているうちに慣れると思うけど、なんだか美しくないなぁ。
186 名前:185 mailto:sage [2008/03/22(土) 11:25:52 ] Practical Common Lispを読み進めていったら By an accident of history, the order of arguments to gethash is the opposite of elt--elt takes the collection first and then the index while gethash takes the key first and then the collection. と書いてありますね。 他の関数は大丈夫なのかな?
187 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 11:58:26 ] みんな一度は考える事だな。でもまぁ、ハッシュと配列アクセスの引数が揃うと何かすごい進歩がある、 というならともかく、気分で非互換にするわけにもいかなかったんだろう。 まぁ次世代のLispの時には揃うかもね。 あるいは↓のように自分でなんとかするとか。コンパイラががんばれば効率はかわらんはず。 ;; c.l.l のスレより転載 groups.google.com/group/comp.lang.lisp/browse_thread/thread/40e7f65f415b0cd3/ (proclaim '(inline hashget)) (defun hashget (table key &optional default) (gethash key table default)) (defun (setf hashget) (value table key &optional default) (setf (gethash key table default) value)) どうしても許せん、ならSchemeとか…
188 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:21:45 ] Common Lispは惰性と妥協の塊だからしょうがない
189 名前:185 mailto:sage [2008/03/22(土) 15:49:42 ] >>187 どうもありがとうございます。 リンク参考になりました。 >>188 やはりそうですか。 JavaやRuby等の、比較的最近の言語から見ると 関数名や引数の順番の一貫性の無さが気になってしまいます。
190 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 16:20:14 ] 上の例のように関数名や引数の順番の一貫性の無さが気になったら 自分好みに変えられるのがLisp風。 むしろそこを気にかけてほすい。 気になった箇所を徹底的に自分好みに変更するのも勉強になります。
191 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 16:48:46 ] 一貫性が無い、のは事実だけど、 覚えることがそもそも少いから、あまり気にしたことないなぁ。
192 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:40:12 ] 「lisp」という単語でネットサーフィンしていたら「仕様記述からソース生成」などという言葉が出てきたのですが、ありえないですよね? ただの電波ですよね?
193 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:52:16 ] その「仕様記述」とやらによるけど、厳密さが十分にあれば可能ですよ。別にLispに限らないけどね…… S式があるおかげでフォーマットに悩まないとかマクロのおかげでコード生成が身近というあたりが利点かもね。 でも、あいまいな仕様でもLispをつかうだけで魔法のようにまともなソースができあがる、なんて話ならありえない。
194 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:12:38 ] あいまいでない仕様などそう簡単に書けないし、激しく無理がありそうな気がします。
195 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:16:07 ] >>192 Leeを思い出したww
196 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:19:50 ] 無理なものは無理だろうね。 元ネタがどこだなのかわからんから推測しか言えないが、厳密にかける世界の話だったんじゃないかな? ファイルフォーマット解析とか状態遷移とかコンパイラとか、仕様を厳密に記述するほうが自力でゴリゴリコーディング するより楽、という話ではないかな。
197 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:19:53 ] て言うか、「仕様記述からソース生成」なんて言うのは、文字列処理や リスト処理がたくさん出てくるので、Lisp 向き。 と言う時代もあったけど、最近の言語はどれもそれなりに文字列処理や リスト処理に不自由しなくなってきたので Lisp だからどうと言うこと は少なくなくって来た。
198 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:30:05 ] >>197 実行時にevalがあるような言語だけじゃないかな? lispだとマクロが化け物だから可能な領域ってのもあるからそこを前提にされると太刀打ちできない気がする。
199 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:30:16 ] >>192 仕様記述からプログラムが書けるとすれば、その仕様記述は(自然言語とかけはなれた) 曖昧性の無いもののハズで、それは完全にプログラムそのものだろ。 可能ちゃ可能だろうけど、それに何の意味があるんだ? といつも思う。
200 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:40:42 ] 発想が逆なんじゃないかな? 仕様を定義するほうが、プログラム書くより量的に少ない場合とか、 そうでなくても厳密な仕様をミスなく書き下す手間が自動化できてラッキーとか、 モデルチェッカとかでチェックした仕様をソースにできるとか、 図でプログラム読めない人(←でも業務とかその道のプロ)に漏れや抜けがないかを チェックしてもらって、そっからミスなくソースができてうれしーとか。
201 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:54:24 ] そもそも実用になっていないって事が良くわかった。
202 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:58:56 ] いや、部分的であれば仕様記述からのプログラム生成は十分使い物になってるし、 実務でも使ってるよ。単なるちょっとした規模のマクロ、って意味だけど。
203 名前:201 mailto:sage [2008/03/23(日) 00:25:47 ] >>202 想像できないけど、実務で使われているなら納得せざるおえないのか。
204 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:57:26 ] DSL の一種と思えるのかな?
205 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 05:57:22 ] CでYaccとか使ってみれば想像できるようになるかも
206 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 07:01:23 ] >>205 それで想像できるなら正規表現使えば想像できる筈
207 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 08:47:24 ] そーいわれれば lex, yacc はそれに近いなあ
208 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 09:12:26 ] >>200 ,202 それをプログラムではなく仕様と呼ぶのは何故なんだぜ? 売り込みに来たヤツがそういってるから?
209 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 10:31:37 ] ずいぶん頭固いね。 仕様書って文章で書いた奴しか見たことないのかな。
210 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 10:37:24 ] と、まるで何かを見てきたふうなことを言ってるけど、別に何も見てきてないんでしょ?w だから具体的に書けない。
211 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:02:39 ] >>209 とりあえず、199の時点で皆に膝を叩いて納得して欲しかったんじゃない?
212 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 14:34:59 ] だろうね。 >>199 厳密に書かないといけないのは確かだけど、意味がないわけじゃない。 例えば、今時特殊な状況を除けば普通高級言語でプログラム書くけど、これだって 当然曖昧性のないものでなのでアセンブラと同様に厳密に書かないといけない。 だからと言って意味がないわけじゃないだろ? ループのためだけにラベル名を考えたり、ローカル変数のサイズ計算してスタック ポインタから引くためのコード書いたりしなくて良くなるだけでも、ずいぶん楽だ しコードの品質も上がる。 それと同じで、例えば通信やってる人なんかだと仕様書として状態遷移図とか、ス テータスマトリックスを渡されたり、自分で書いたりする。 今はこれを見て「人手で」コーディングしてるでしょ? で、仕様変更があったら再度コードを「人手で」修正してるよね。 この部分を自動化するだけでもかなり楽になると思わない?
213 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 15:36:06 ] & % #' などの略記一覧はどこかにないでしょうか? emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか?
214 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:14:29 ] >>213 > emacsでcommon lisp開発環境作るとしたらslimeだけでいいのでしょうか? 後はマニュアルを引きやすくしとけばいんでね
215 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 18:46:24 ] >>213 「Common Lispリーダーの標準的なマクロ文字が知りたい」の?だとしたら % って何だろ… とりあえずHyperSpec見れ ttp://www.lisp.org/HyperSpec/Body/sec_2-4.html ttp://www.lisp.org/HyperSpec/FrontMatter/Alphabetical-Non-Alphabetic.html
216 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:20:00 ] >>215 ということは変数名の先頭に%がついてたのは特別な意味はないのですね
217 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 19:30:55 ] >>216 ないといえばないけど、慣習の一部 www.cliki.net/Naming%20conventions
218 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 20:26:08 ] CLispがGNU Common Lispかと思っていたけど、 GNU Common LispってGCLだったのね。 違いは何だろうと思って探したら okwave.jp/qa3686339.html がありました。
219 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 02:30:50 ] さいきんLispに興味があります 普段何に使ってますか? 1. シェルスクリプト並にナチュラルに普段使いをしている 2. ある程度以上注意深く作るアプリケーションやモジュール作成の時のみに使用 3. 実用性を考えたら負けなものをニヤニヤしながら作ってて楽しい
220 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 05:58:56 ] シェルスクリプトとは違う意味でナチュラルに普段使い。 思いついたことをさらっと試すのに使ってる。 Emacs使いでないとわからん感覚かも
221 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 08:38:11 ] 大体何にでも使うけど、シェルスクリプトなんて普段くまねーからわかりません。
222 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:20:20 ] lispの入門のホームページはよく見つかるのですが、それ以上の話題はどこを探せばいいのでしょうか? cffiを使ってc++のプログラムをlispから呼びたいのですがサンプルのコードの意味が今一つわかりません www.swig.org/Doc1.3/Lisp.html#Lisp_nn6 ここあたりがそうみたいなのですが、これが理解できるようになるための 中級向けテキストはどこかにないのでしょうか?
223 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:39:41 ] >>222 >それ以上の話題 は残念ながら殆ど英語圏にあります。 ffi等は実装依存なので、まず使っている処理系がなにかを書くと適切な返事があるかも。
224 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:42:44 ] >>222 swigを使うのがわからないのか、ffiの使い方自体がわからないのか、どっちなんだよ?
225 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 10:59:49 ] swigは他の言語で使ったことがあるので大体見当がつきますが、 lispのサンプルコードで cl:letと単純にletと書くのにどう違いがあるのか などの記法が分からずつまづきます ffiの使い方がわからないですpython.ctypesと似たようなものなのでしょうか?
226 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:08:01 ] >cl:letと単純にletと書くのにどう違いがあるのか >などの記法が分からずつまづきます これはCLのパッケージについて入門用のサイトで勉強すれば分かると思うので、 一歩戻ってパッケージについて学ぶことをおすすめしたいところ。
227 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 11:16:55 ] >>225 ffiは処理系依存だから、まずおまいさんが使ってる処理系のマニュアル嫁。 処理系にできるだけ依存したくないならcffiとかuffi使え。 でもswig使ったことあるならインタフェース書けるだろうし、 理解しなくても使えると思うんだが。
228 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:35:31 ] >>219 愛があればRubyあたりとそう大差ない普段使いができると思ってもらっておk PerlはCPANが強力過ぎるしPythonはGUIがあるから常用を比べるのはちょっと酷 ニコニコ動画ダウンローダー(ちょっと色々混じってるが) ttp://read-eval-print.blogspot.com/2007/08/common-lisp.html ただ、この利用レベルに至るのには時間がかかるのが難点 「別にLispでなくてもいいじゃんね?」という内からの声を無視できる程度には超越しないとイカン
229 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:37:29 ] maximaを使いたくてpythonからclispに乗り換え挑戦中だ
230 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:48:57 ] maximaをアプリとして使うだけならCL知らんでも (自分でCL使って関数書きたいとか言わなきゃ)問題なかろ。
231 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 15:00:49 ] >>228 Lispに愛が芽生えてきますた。 言語への慣れと理解によって大きく違うと思いますが、 Rubyと比べて、生産性は良さはどんなものでしょうか?
232 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:27:54 ] Lispは神が世界を記述するのに使った言葉。 最初に「光あれ!」とかやってたのは全部Lisp。 一方、Rubyはただのスクリプト言語。
233 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 20:32:44 ] www.aoky.net/articles/randall_munroe/lisp.htm
234 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 10:56:09 ] Lispはconsセルの操作しかできないと思っていた俺は CLOSを知った今、猛烈に感動している。 凄いなCommon Lisp♥
235 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 11:01:31 ] 確かめてないが、見えない根っこのほうではconsセルの操作しかしてねーと思うぞ
236 名前:234 mailto:sage [2008/03/25(火) 11:19:24 ] CLOSどころか、defstructでも感動してしたYO。 >>235 そうですよね。 でも、なんだかとっても凄いぞCommon Lisp。
237 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:26:50 ] >>235 まあ、足し算とか引き算なんかもできないとスゲー困るわけで...
238 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 22:41:42 ] cons だけで数を表現して足し算と引き算とかは実装できるよ。 ラムダ計算の初歩ですよ。遅いけど。
239 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:44:37 ] Rと組み合わせられるなんて
240 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 01:58:43 ] 最近は何見てCLOSを勉強してるんだろ?
241 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 02:20:26 ] www.geocities.jp/m_hiroi/clisp/clisp01.html
242 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 03:31:13 ] Rを呼べる common-lisp.net/project/rcl/index.html
243 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 15:19:34 ] accountはcustomer-name slotを持つクラスで、 (defun (setf customer-name) (name account) (setf (slot-value account 'customer-name) name)) と定義すると、 (setf (customer-name my-account) "hoge") と書けるのはどうしてですか? defunを使った関数定義で (defun (setf 〜) ....) とdefunの直後に括弧が付く場合、何を意味することになるのでしょうか? 初心者丸出しの頓珍漢な質問だと思いますが、お願いします。
244 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 16:54:04 ] 何でって言われてもそれがアクセサの定義の仕方だから。
245 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 17:15:34 ] もうちょっと具体的に説明すると CLtL2 のインヴァージョンをよく読むとよい。 OnLisp の汎変数の説明のところでもいいけど。
246 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 18:54:02 ] cmuclをemacs22+slime2.0で使っています。 キャラクタエンコードをutf-8を通す設定にしてslimeコンソールから日本語(に限らずutfで256以上の値を持つ文字)を食わせると cmucl側からソケットが切断されてしまうのですがこの辺りを解決する情報をお持ちの方はいますでしょうか?
247 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 19:41:14 ] >>246 そもそもcmuclってutf-8通せたっけ?
248 名前:243 mailto:sage [2008/03/26(水) 20:49:02 ] >>244 ,245 Googleで調べていたのですが、このような機能をなんと呼ぶのかも 分からず、困っていました。 CLtL2 inversionで調べたら、出てきました。 助かりました。どうもありがとうございます。
249 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 00:50:24 ] >>247 単体で起動すると通りますがslime経由だと通らないのです。 sbclも試したのですが、こちらは主用途のaserveでつかっているhtmlgenの中に日本語テキストがあると出力がそこで打ち切りになってしまいますです。 ex. aserveへ↓を食わせたときに (:html (:body "test" :br "test2" :br "多バイトコード" )) ブラウザでaserveをアクセスしたときに test2<br>までが出力されます(sbclのバグトラックにはレポートあがってました) この例をcmuclでやるとコンソールから直に打ち込むとOKなのですがslime経由だと"多"が送り込まれた時にsocketがreset by peerになってしまうのです。 lispの学習で自分の手習いを実用コードで行おうというのがおこがましいのかなぁorz